added sys.time, sys.random, sys.srandom.
removed test-bi.sh wrote a simple bigint test program into test-bi.hcl
This commit is contained in:
36
t/test-bi.hcl
Normal file
36
t/test-bi.hcl
Normal file
@ -0,0 +1,36 @@
|
||||
## test big integer operations
|
||||
## hcl --log /dev/null,warn+ test-bi.hcl
|
||||
|
||||
(sys.srandom (sys.time))
|
||||
(set count 0)
|
||||
(while true
|
||||
(printf "%O\r" count)
|
||||
(set count (+ count 1))
|
||||
|
||||
(set limit (rem (sys.random) 30))
|
||||
(set dividend (sys.random))
|
||||
(set i 1)
|
||||
(while (< i limit)
|
||||
(set dividend (bit-or (bit-shift dividend 30) (sys.random)))
|
||||
(set i (+ i 1))
|
||||
)
|
||||
|
||||
(set limit (rem (sys.random) 30))
|
||||
(set divisor (sys.random))
|
||||
(set i 1)
|
||||
(while (< i limit)
|
||||
(set divisor (bit-or (bit-shift divisor 30) (sys.random)))
|
||||
(set i (+ i 1))
|
||||
)
|
||||
|
||||
(set quotient (/ dividend divisor))
|
||||
(set remainder (rem dividend divisor))
|
||||
(set derived_dividend (+ (* quotient divisor) remainder))
|
||||
|
||||
(if (/= dividend derived_dividend)
|
||||
(printf ">> dividend %O\n>> divisor %O\n>> quotient %O\n>> remainder %O\n>> derived_dividend %O\n"
|
||||
dividend divisor quotient remainder derived_dividend)
|
||||
(break)
|
||||
)
|
||||
)
|
||||
(printf "\n")
|
35
t/test-bi.sh
35
t/test-bi.sh
@ -1,35 +0,0 @@
|
||||
count=0
|
||||
while true
|
||||
do
|
||||
/bin/echo -n -e "$count\r"
|
||||
count=$(($count + 1))
|
||||
|
||||
a=`openssl rand -hex 1 | tr '[a-z]' '[A-Z]'`
|
||||
a=$(echo -e "(printf \"%O\" #x$a)" | ~/xxx/bin/hcl --log /dev/null /dev/stdin)
|
||||
[ "$a" = "0" ] && a=1
|
||||
a=`openssl rand -hex $a | tr '[a-z]' '[A-Z]'`
|
||||
|
||||
|
||||
b=`openssl rand -hex 1 | tr '[a-z]' '[A-Z]'`
|
||||
b=$(echo -e "(printf \"%O\" #x$b)" | ~/xxx/bin/hcl --log /dev/null /dev/stdin)
|
||||
[ "$b" = "0" ] && b=1
|
||||
b=`openssl rand -hex $b | tr '[a-z]' '[A-Z]'`
|
||||
|
||||
a=$(echo -e "(printf \"%O\" #x$a)" | ~/xxx/bin/hcl --log /dev/null /dev/stdin)
|
||||
b=$(echo -e "(printf \"%O\" #x$b)" | ~/xxx/bin/hcl --log /dev/null /dev/stdin)
|
||||
[ "$b" = "0" ] && b=1
|
||||
|
||||
q=$(echo -e "(printf \"%O\" (/ $a $b))" | ~/xxx/bin/hcl --log /dev/null /dev/stdin)
|
||||
r=$(echo -e "(printf \"%O\" (rem $a $b))" | ~/xxx/bin/hcl --log /dev/null /dev/stdin)
|
||||
a1=$(echo -e "(printf \"%O\" (+ (* $q $b) $r))" | ~/xxx/bin/hcl --log /dev/null /dev/stdin)
|
||||
|
||||
if [ "$a" != "$a1" ]
|
||||
then
|
||||
echo "a=>$a"
|
||||
echo "b=>$b"
|
||||
echo "q=>$q"
|
||||
echo "r=>$r"
|
||||
echo "a1=>$a1"
|
||||
break
|
||||
fi
|
||||
done
|
Reference in New Issue
Block a user