diff options
author | Stefan Eßer <se@FreeBSD.org> | 2020-06-27 15:03:19 +0000 |
---|---|---|
committer | Stefan Eßer <se@FreeBSD.org> | 2020-06-27 15:03:19 +0000 |
commit | 1f958cfad78842ab9a1193471589231e25596cb3 (patch) | |
tree | 4bbff8044605fcfff11c9d322bb6f53495e4faa7 /tests |
Diffstat (limited to 'tests')
239 files changed, 25928 insertions, 0 deletions
diff --git a/tests/afl.py b/tests/afl.py new file mode 100755 index 000000000000..a67e086c3dd1 --- /dev/null +++ b/tests/afl.py @@ -0,0 +1,176 @@ +#! /usr/bin/python3 -B +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +import os +import sys +import shutil +import subprocess + +def usage(): + print("usage: {} [--asan] dir [results_dir [exe options...]]".format(script)) + sys.exit(1) + +def check_crash(exebase, out, error, file, type, test): + if error < 0: + print("\n{} crashed ({}) on {}:\n".format(exebase, -error, type)) + print(" {}".format(test)) + print("\nCopying to \"{}\"".format(out)) + shutil.copy2(file, out) + print("\nexiting...") + sys.exit(error) + +def run_test(cmd, exebase, tout, indata, out, file, type, test, environ=None): + try: + p = subprocess.run(cmd, timeout=tout, input=indata, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, env=environ) + check_crash(exebase, out, p.returncode, file, type, test) + except subprocess.TimeoutExpired: + print("\n {} timed out. Continuing...\n".format(exebase)) + +def create_test(file, tout, environ=None): + + print(" {}".format(file)) + + base = os.path.basename(file) + + if base == "README.txt": + return + + with open(file, "rb") as f: + lines = f.readlines() + + print(" Running whole file...") + + run_test(exe + [ file ], exebase, tout, halt.encode(), out, file, "file", file, environ) + + print(" Running file through stdin...") + + with open(file, "rb") as f: + content = f.read() + + run_test(exe, exebase, tout, content, out, file, + "running {} through stdin".format(file), file, environ) + + +def get_children(dir, get_files): + dirs = [] + with os.scandir(dir) as it: + for entry in it: + if not entry.name.startswith('.') and \ + ((entry.is_dir() and not get_files) or \ + (entry.is_file() and get_files)): + dirs.append(entry.name) + dirs.sort() + return dirs + +script = sys.argv[0] +testdir = os.path.dirname(script) + +if __name__ != "__main__": + usage() + +timeout = 2.5 + +if len(sys.argv) < 2: + usage() + +idx = 1 + +exedir = sys.argv[idx] + +asan = (exedir == "--asan") + +if asan: + idx += 1 + if len(sys.argv) < idx + 1: + usage() + exedir = sys.argv[idx] + +if len(sys.argv) >= idx + 2: + resultsdir = sys.argv[idx + 1] +else: + if exedir == "bc": + resultsdir = testdir + "/../../results" + else: + resultsdir = testdir + "/../../results_dc" + +if len(sys.argv) >= idx + 3: + exe = sys.argv[idx + 2] +else: + exe = testdir + "/../bin/" + exedir + +exebase = os.path.basename(exe) + +if exebase == "bc": + halt = "halt\n" + options = "-lq" +else: + halt = "q\n" + options = "-x" + +if len(sys.argv) >= idx + 4: + exe = [ exe, sys.argv[idx + 3:], options ] +else: + exe = [ exe, options ] +for i in range(4, len(sys.argv)): + exe.append(sys.argv[i]) + +out = testdir + "/../.test.txt" + +print(os.path.realpath(os.getcwd())) + +dirs = get_children(resultsdir, False) + +if asan: + env = os.environ.copy() + env['ASAN_OPTIONS'] = 'abort_on_error=1:allocator_may_return_null=1' + +for d in dirs: + + d = resultsdir + "/" + d + + print(d) + + files = get_children(d + "/crashes/", True) + + for file in files: + file = d + "/crashes/" + file + create_test(file, timeout) + + if not asan: + continue + + files = get_children(d + "/queue/", True) + + for file in files: + file = d + "/queue/" + file + create_test(file, timeout * 2, env) + +print("Done") + diff --git a/tests/all.sh b/tests/all.sh new file mode 100755 index 000000000000..bd39caf8dcbd --- /dev/null +++ b/tests/all.sh @@ -0,0 +1,301 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +set -e + +script="$0" +testdir=$(dirname "$script") + +. "$testdir/../functions.sh" + +if [ "$#" -ge 1 ]; then + d="$1" + shift +else + err_exit "usage: $script dir [run_extra_tests] [run_stack_tests] [gen_tests] [time_tests] [exec args...]" 1 +fi + +if [ "$#" -lt 1 ]; then + extra=1 +else + extra="$1" + shift +fi + +if [ "$#" -lt 1 ]; then + run_stack_tests=1 +else + run_stack_tests="$1" + shift +fi + +if [ "$#" -lt 1 ]; then + generate_tests=1 +else + generate_tests="$1" + shift +fi + +if [ "$#" -lt 1 ]; then + time_tests=0 +else + time_tests="$1" + shift +fi + +if [ "$#" -lt 1 ]; then + exe="$testdir/../bin/$d" +else + exe="$1" + shift +fi + +stars="***********************************************************************" +printf '%s\n' "$stars" + +if [ "$d" = "bc" ]; then + halt="quit" +else + halt="q" +fi + +unset BC_ENV_ARGS +unset BC_LINE_LENGTH +unset DC_ENV_ARGS +unset DC_LINE_LENGTH + +printf '\nRunning %s tests...\n\n' "$d" + +while read t; do + + if [ "$extra" -eq 0 ]; then + if [ "$t" = "trunc" ] || [ "$t" = "places" ] || [ "$t" = "shift" ] || \ + [ "$t" = "lib2" ] || [ "$t" = "scientific" ] || [ "$t" = "rand" ] || \ + [ "$t" = "engineering" ] + then + printf 'Skipping %s %s\n' "$d" "$t" + continue + fi + fi + + sh "$testdir/test.sh" "$d" "$t" "$generate_tests" "$time_tests" "$exe" "$@" + +done < "$testdir/$d/all.txt" + +sh "$testdir/stdin.sh" "$d" "$exe" "$@" + +sh "$testdir/scripts.sh" "$d" "$extra" "$run_stack_tests" "$generate_tests" "$time_tests" "$exe" "$@" +sh "$testdir/read.sh" "$d" "$exe" "$@" +sh "$testdir/errors.sh" "$d" "$exe" "$@" + +num=100000000000000000000000000000000000000000000000000000000000000000000000000000 +numres="$num" +num70="10000000000000000000000000000000000000000000000000000000000000000000\\ +0000000000" + +if [ "$d" = "bc" ]; then + halt="halt" + opt="x" + lopt="extended-register" + line_var="BC_LINE_LENGTH" +else + halt="q" + opt="l" + lopt="mathlib" + line_var="DC_LINE_LENGTH" + num="$num pR" +fi + +printf '\nRunning %s quit test...' "$d" + +printf '%s\n' "$halt" | "$exe" "$@" > /dev/null 2>&1 + +if [ "$d" = bc ]; then + printf '%s\n' "quit" | "$exe" "$@" > /dev/null 2>&1 +fi + +printf 'pass\n' + +base=$(basename "$exe") + +if [ "$base" != "bc" -a "$base" != "dc" ]; then + exit 0 +fi + +printf 'Running %s environment var tests...' "$d" + +if [ "$d" = "bc" ]; then + export BC_ENV_ARGS=" '-l' '' -q" + export BC_EXPR_EXIT="1" + printf 's(.02893)\n' | "$exe" "$@" > /dev/null + "$exe" -e 4 "$@" > /dev/null +else + export DC_ENV_ARGS="'-x'" + export DC_EXPR_EXIT="1" + printf '4s stuff\n' | "$exe" "$@" > /dev/null + "$exe" -e 4pR "$@" > /dev/null +fi + +printf 'pass\n' + +out1="$testdir/../.log_$d.txt" +out2="$testdir/../.log_${d}_test.txt" + +printf 'Running %s line length tests...' "$d" + +printf '%s\n' "$numres" > "$out1" + +export "$line_var"=80 +printf '%s\n' "$num" | "$exe" "$@" > "$out2" + +diff "$out1" "$out2" + +printf '%s\n' "$num70" > "$out1" + +export "$line_var"=2147483647 +printf '%s\n' "$num" | "$exe" "$@" > "$out2" + +diff "$out1" "$out2" + +printf 'pass\n' + +printf 'Running %s arg tests...' "$d" + +f="$testdir/$d/add.txt" +exprs=$(cat "$f") +results=$(cat "$testdir/$d/add_results.txt") + +printf '%s\n%s\n%s\n%s\n' "$results" "$results" "$results" "$results" > "$out1" + +"$exe" "$@" -e "$exprs" -f "$f" --expression "$exprs" --file "$f" -e "$halt" > "$out2" + +diff "$out1" "$out2" + +printf '%s\n' "$halt" | "$exe" "$@" -- "$f" "$f" "$f" "$f" > "$out2" + +diff "$out1" "$out2" + +if [ "$d" = "bc" ]; then + printf '%s\n' "$halt" | "$exe" "$@" -i > /dev/null 2>&1 +fi + +printf '%s\n' "$halt" | "$exe" "$@" -h > /dev/null +printf '%s\n' "$halt" | "$exe" "$@" -P > /dev/null +printf '%s\n' "$halt" | "$exe" "$@" -v > /dev/null +printf '%s\n' "$halt" | "$exe" "$@" -V > /dev/null + +set +e + +"$exe" "$@" -f "saotehasotnehasthistohntnsahxstnhalcrgxgrlpyasxtsaosysxsatnhoy.txt" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "invalid file argument" "$out2" "$d" + +"$exe" "$@" "-$opt" -e "$exprs" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "invalid option argument" "$out2" "$d" + +"$exe" "$@" "--$lopt" -e "$exprs" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "invalid long option argument" "$out2" "$d" + +"$exe" "$@" "-u" -e "$exprs" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "unrecognized option argument" "$out2" "$d" + +"$exe" "$@" "--uniform" -e "$exprs" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "unrecognized long option argument" "$out2" "$d" + +"$exe" "$@" -f > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "missing required argument to short option" "$out2" "$d" + +"$exe" "$@" --file > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "missing required argument to long option" "$out2" "$d" + +"$exe" "$@" --version=5 > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "given argument to long option with no argument" "$out2" "$d" + +printf 'pass\n' + +printf 'Running %s directory test...' "$d" + +"$exe" "$@" "$testdir" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "directory" "$out2" "$d" + +printf 'pass\n' + +printf 'Running %s binary file test...' "$d" + +bin="/bin/sh" + +"$exe" "$@" "$bin" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "binary file" "$out2" "$d" + +printf 'pass\n' + +printf 'Running %s binary stdin test...' "$d" + +cat "$bin" | "$exe" "$@" > /dev/null 2> "$out2" +err="$?" + +checktest "$d" "$err" "binary stdin" "$out2" "$d" + +printf 'pass\n' + +if [ "$d" = "bc" ]; then + + printf 'Running %s limits tests...' "$d" + printf 'limits\n' | "$exe" "$@" > "$out2" /dev/null 2>&1 + + if [ ! -s "$out2" ]; then + err_exit "$d did not produce output on the limits test" 1 + fi + + printf 'pass\n' + +fi + +printf '\nAll %s tests passed.\n' "$d" + +printf '\n%s\n' "$stars" diff --git a/tests/all.txt b/tests/all.txt new file mode 100644 index 000000000000..e3c025217c4b --- /dev/null +++ b/tests/all.txt @@ -0,0 +1,2 @@ +bc +dc diff --git a/tests/bc/abs.txt b/tests/bc/abs.txt new file mode 100644 index 000000000000..ffb7aba65c3b --- /dev/null +++ b/tests/bc/abs.txt @@ -0,0 +1,7 @@ +abs(0) +abs(1) +abs(.289365) +abs(289.82937658) +abs(-19) +abs(-.2098180) +abs(-198289.1098376) diff --git a/tests/bc/abs_results.txt b/tests/bc/abs_results.txt new file mode 100644 index 000000000000..8d2658a2737e --- /dev/null +++ b/tests/bc/abs_results.txt @@ -0,0 +1,7 @@ +0 +1 +.289365 +289.82937658 +19 +.2098180 +198289.1098376 diff --git a/tests/bc/add.txt b/tests/bc/add.txt new file mode 100644 index 000000000000..647781732c63 --- /dev/null +++ b/tests/bc/add.txt @@ -0,0 +1,146 @@ +0 + 0 +0 + 1 +1 + 1 +1 + 0 +2 + 5 +237 + 483 +999 + 999 +2374623 + 324869356734856 +2378639084586723980562 + 23468729367839 +37298367203972395108367910823465293084561329084561390845613409516734503870691837451 + 785621394067928346918023476190834672198467134908618723249671349062187346898241093486139046139084613490817356023871869102746182749061872609129847 +1.1 + 0 +0 + 1.1 +457283.731284923576 + 37842934672834.3874629385672354 +1.0 + 0.1 +3746289134067138046 + 0.138375863945672398456712389456273486293 +-1 + -1 +-4 + -15 +-1346782 + -1287904651762468913476 +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999995 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005 +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999899999999999999999999999999999999999999999999999999999999999999 + 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +99999999999999999999999999999999999989999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +-1889985797 + 2012747315 +0 + -14338.391079082 +-2422297 + 1.3134942556 +182039471029834 + 282039471029834 +282039471029834 + 182039471029834 +182039471029834.2801722893 + 282039471029834 +282039471029834.2801722893 + 182039471029834 +182039471029834.2801722893 + 282039471029834.2838 +282039471029834.2801722893 + 182039471029834.2838 +182039471029834 + 282039471029834.2801722893 +282039471029834 + 182039471029834.2801722893 +182039471029834.8297282893 + 282039471029834.2801722893 +282039471029834.8297282893 + 182039471029834.2801722893 +471029834 + 282039471029834 +471029834 + 182039471029834 +471029834.2801722893 + 282039471029834 +471029834.2801722893 + 182039471029834 +471029834.2801722893 + 282039471029834.2838 +471029834.2801722893 + 182039471029834.2838 +471029834 + 282039471029834.2801722893 +471029834 + 182039471029834.2801722893 +471029834.8297282893 + 282039471029834.2801722893 +471029834.8297282893 + 182039471029834.2801722893 +182039471029834 + 471029834 +282039471029834 + 471029834 +182039471029834.2801722893 + 471029834 +282039471029834.2801722893 + 471029834 +182039471029834.2801722893 + 471029834.2838 +282039471029834.2801722893 + 471029834.2838 +182039471029834 + 471029834.2801722893 +282039471029834 + 471029834.2801722893 +182039471029834.8297282893 + 471029834.2801722893 +282039471029834.8297282893 + 471029834.2801722893 +-182039471029834 + 282039471029834 +-282039471029834 + 182039471029834 +-182039471029834.2801722893 + 282039471029834 +-282039471029834.2801722893 + 182039471029834 +-182039471029834.2801722893 + 282039471029834.2838 +-282039471029834.2801722893 + 182039471029834.2838 +-182039471029834 + 282039471029834.2801722893 +-282039471029834 + 182039471029834.2801722893 +-182039471029834.8297282893 + 282039471029834.2801722893 +-282039471029834.8297282893 + 182039471029834.2801722893 +-471029834 + 282039471029834 +-471029834 + 182039471029834 +-471029834.2801722893 + 282039471029834 +-471029834.2801722893 + 182039471029834 +-471029834.2801722893 + 282039471029834.2838 +-471029834.2801722893 + 182039471029834.2838 +-471029834 + 282039471029834.2801722893 +-471029834 + 182039471029834.2801722893 +-471029834.8297282893 + 282039471029834.2801722893 +-471029834.8297282893 + 182039471029834.2801722893 +-182039471029834 + 471029834 +-282039471029834 + 471029834 +-182039471029834.2801722893 + 471029834 +-282039471029834.2801722893 + 471029834 +-182039471029834.2801722893 + 471029834.2838 +-282039471029834.2801722893 + 471029834.2838 +-182039471029834 + 471029834.2801722893 +-282039471029834 + 471029834.2801722893 +-182039471029834.8297282893 + 471029834.2801722893 +-282039471029834.8297282893 + 471029834.2801722893 +182039471029834 + -282039471029834 +282039471029834 + -182039471029834 +182039471029834.2801722893 + -282039471029834 +282039471029834.2801722893 + -182039471029834 +182039471029834.2801722893 + -282039471029834.2838 +282039471029834.2801722893 + -182039471029834.2838 +182039471029834 + -282039471029834.2801722893 +282039471029834 + -182039471029834.2801722893 +182039471029834.8297282893 + -282039471029834.2801722893 +282039471029834.8297282893 + -182039471029834.2801722893 +471029834 + -282039471029834 +471029834 + -182039471029834 +471029834.2801722893 + -282039471029834 +471029834.2801722893 + -182039471029834 +471029834.2801722893 + -282039471029834.2838 +471029834.2801722893 + -182039471029834.2838 +471029834 + -282039471029834.2801722893 +471029834 + -182039471029834.2801722893 +471029834.8297282893 + -282039471029834.2801722893 +471029834.8297282893 + -182039471029834.2801722893 +182039471029834 + -471029834 +282039471029834 + -471029834 +182039471029834.2801722893 + -471029834 +282039471029834.2801722893 + -471029834 +182039471029834.2801722893 + -471029834.2838 +282039471029834.2801722893 + -471029834.2838 +182039471029834 + -471029834.2801722893 +282039471029834 + -471029834.2801722893 +182039471029834.8297282893 + -471029834.2801722893 +282039471029834.8297282893 + -471029834.2801722893 +-182039471029834 + -282039471029834 +-282039471029834 + -182039471029834 +-182039471029834.2801722893 + -282039471029834 +-282039471029834.2801722893 + -182039471029834 +-182039471029834.2801722893 + -282039471029834.2838 +-282039471029834.2801722893 + -182039471029834.2838 +-182039471029834 + -282039471029834.2801722893 +-282039471029834 + -182039471029834.2801722893 +-182039471029834.8297282893 + -282039471029834.2801722893 +-282039471029834.8297282893 + -182039471029834.2801722893 +-471029834 + -282039471029834 +-471029834 + -182039471029834 +-471029834.2801722893 + -282039471029834 +-471029834.2801722893 + -182039471029834 +-471029834.2801722893 + -282039471029834.2838 +-471029834.2801722893 + -182039471029834.2838 +-471029834 + -282039471029834.2801722893 +-471029834 + -182039471029834.2801722893 +-471029834.8297282893 + -282039471029834.2801722893 +-471029834.8297282893 + -182039471029834.2801722893 +-182039471029834 + -471029834 +-282039471029834 + -471029834 +-182039471029834.2801722893 + -471029834 +-282039471029834.2801722893 + -471029834 +-182039471029834.2801722893 + -471029834.2838 +-282039471029834.2801722893 + -471029834.2838 +-182039471029834 + -471029834.2801722893 +-282039471029834 + -471029834.2801722893 +-182039471029834.8297282893 + -471029834.2801722893 +-282039471029834.8297282893 + -471029834.2801722893 diff --git a/tests/bc/add_results.txt b/tests/bc/add_results.txt new file mode 100644 index 000000000000..020969b4ea3d --- /dev/null +++ b/tests/bc/add_results.txt @@ -0,0 +1,158 @@ +0 +1 +2 +1 +7 +720 +1998 +324869359109479 +2378639108055453348401 +78562139406792834691802347619083467219846713490861872324967138636055\ +45508706362018540498696043776980521464405852627147161556994835657433\ +00967298 +1.1 +1.1 +37842935130118.1187478621432354 +1.1 +3746289134067138046.138375863945672398456712389456273486293 +-2 +-19 +-1287904651762470260258 +100000000000000000000000000000000000000000000000000000000000.0000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000 +100000000000000000000000000000000000000000000000000000000000.0000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000 +100000000000000000000000000000000000000000000000000000000000.0000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000009999 +99999999999999999999999999999999999999999999999999999999999.99999999\ +99999999999999999999999999999999999999999999999999000000000000000000\ +00000000000000000000000000000000000000009999 +99999999999999999999999999999999999990000000000000000000000.00000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000009999 +122761518 +-14338.391079082 +-2422295.6865057444 +464078942059668 +464078942059668 +464078942059668.2801722893 +464078942059668.2801722893 +464078942059668.5639722893 +464078942059668.5639722893 +464078942059668.2801722893 +464078942059668.2801722893 +464078942059669.1099005786 +464078942059669.1099005786 +282039942059668 +182039942059668 +282039942059668.2801722893 +182039942059668.2801722893 +282039942059668.5639722893 +182039942059668.5639722893 +282039942059668.2801722893 +182039942059668.2801722893 +282039942059669.1099005786 +182039942059669.1099005786 +182039942059668 +282039942059668 +182039942059668.2801722893 +282039942059668.2801722893 +182039942059668.5639722893 +282039942059668.5639722893 +182039942059668.2801722893 +282039942059668.2801722893 +182039942059669.1099005786 +282039942059669.1099005786 +100000000000000 +-100000000000000 +99999999999999.7198277107 +-100000000000000.2801722893 +100000000000000.0036277107 +-99999999999999.9963722893 +100000000000000.2801722893 +-99999999999999.7198277107 +99999999999999.4504440000 +-100000000000000.5495560000 +282039000000000 +182039000000000 +282038999999999.7198277107 +182038999999999.7198277107 +282039000000000.0036277107 +182039000000000.0036277107 +282039000000000.2801722893 +182039000000000.2801722893 +282038999999999.4504440000 +182038999999999.4504440000 +-182039000000000 +-282039000000000 +-182039000000000.2801722893 +-282039000000000.2801722893 +-182038999999999.9963722893 +-282038999999999.9963722893 +-182038999999999.7198277107 +-282038999999999.7198277107 +-182039000000000.5495560000 +-282039000000000.5495560000 +-100000000000000 +100000000000000 +-99999999999999.7198277107 +100000000000000.2801722893 +-100000000000000.0036277107 +99999999999999.9963722893 +-100000000000000.2801722893 +99999999999999.7198277107 +-99999999999999.4504440000 +100000000000000.5495560000 +-282039000000000 +-182039000000000 +-282038999999999.7198277107 +-182038999999999.7198277107 +-282039000000000.0036277107 +-182039000000000.0036277107 +-282039000000000.2801722893 +-182039000000000.2801722893 +-282038999999999.4504440000 +-182038999999999.4504440000 +182039000000000 +282039000000000 +182039000000000.2801722893 +282039000000000.2801722893 +182038999999999.9963722893 +282038999999999.9963722893 +182038999999999.7198277107 +282038999999999.7198277107 +182039000000000.5495560000 +282039000000000.5495560000 +-464078942059668 +-464078942059668 +-464078942059668.2801722893 +-464078942059668.2801722893 +-464078942059668.5639722893 +-464078942059668.5639722893 +-464078942059668.2801722893 +-464078942059668.2801722893 +-464078942059669.1099005786 +-464078942059669.1099005786 +-282039942059668 +-182039942059668 +-282039942059668.2801722893 +-182039942059668.2801722893 +-282039942059668.5639722893 +-182039942059668.5639722893 +-282039942059668.2801722893 +-182039942059668.2801722893 +-282039942059669.1099005786 +-182039942059669.1099005786 +-182039942059668 +-282039942059668 +-182039942059668.2801722893 +-282039942059668.2801722893 +-182039942059668.5639722893 +-282039942059668.5639722893 +-182039942059668.2801722893 +-282039942059668.2801722893 +-182039942059669.1099005786 +-282039942059669.1099005786 diff --git a/tests/bc/all.txt b/tests/bc/all.txt new file mode 100644 index 000000000000..069e60942404 --- /dev/null +++ b/tests/bc/all.txt @@ -0,0 +1,44 @@ +decimal +length +scale +shift +add +subtract +multiply +divide +modulus +power +sqrt +trunc +places +vars +boolean +comp +abs +assignments +functions +scientific +engineering +globals +strings +letters +print +print2 +parse +exponent +log +pi +arctangent +sine +cosine +bessel +arrays +misc +misc1 +misc2 +misc3 +misc4 +misc5 +void +rand +lib2 diff --git a/tests/bc/arctangent.txt b/tests/bc/arctangent.txt new file mode 100644 index 000000000000..ebaa0e8c10a5 --- /dev/null +++ b/tests/bc/arctangent.txt @@ -0,0 +1,27 @@ +a(.267) +a(1) +scale = 64 +a(.267) +a(1) +scale = 100 +a(.267) +a(1) +scale = 20 +a(0) +a(.5) +a(0.577350269189625764509148780501) +a(1.5) +a(1.7320508075688772935274463415) +a(2) +a(3) +a(1000) +a(-.5) +a(-0.577350269189625764509148780501) +a(-1.5) +a(-1.7320508075688772935274463415) +a(-2) +a(-3) +a(-1000) +a(-3249917614.2821897119) +a(-694706362.1974670468) +scale = 22; a(-816494969) diff --git a/tests/bc/arctangent_results.txt b/tests/bc/arctangent_results.txt new file mode 100644 index 000000000000..31a6ba8cf27d --- /dev/null +++ b/tests/bc/arctangent_results.txt @@ -0,0 +1,26 @@ +.26091356923294057959 +.78539816339744830961 +.2609135692329405795967852677779865639774740239882445822329882917 +.7853981633974483096156608458198757210492923498437764552437361480 +.2609135692329405795967852677779865639774740239882445822329882917230\ +650591934644905491823044536954978 +.7853981633974483096156608458198757210492923498437764552437361480769\ +541015715522496570087063355292669 +0 +.46364760900080611621 +.52359877559829887307 +.98279372324732906798 +1.04719755119659774615 +1.10714871779409050301 +1.24904577239825442582 +1.56979632712822975256 +-.46364760900080611621 +-.52359877559829887307 +-.98279372324732906798 +-1.04719755119659774615 +-1.10714871779409050301 +-1.24904577239825442582 +-1.56979632712822975256 +-1.57079632648719651151 +-1.57079632535543952711 +-1.5707963255701493299433 diff --git a/tests/bc/arrays.txt b/tests/bc/arrays.txt new file mode 100644 index 000000000000..26a284b8d814 --- /dev/null +++ b/tests/bc/arrays.txt @@ -0,0 +1,10 @@ +a[0] = 1 +a[2-1] = 2 + +a[0]+a[0] + +a[2-1]+a[2-1] + +a[5] = 2 +a[5.789] + diff --git a/tests/bc/arrays_results.txt b/tests/bc/arrays_results.txt new file mode 100644 index 000000000000..200035ffa0a0 --- /dev/null +++ b/tests/bc/arrays_results.txt @@ -0,0 +1,3 @@ +2 +4 +2 diff --git a/tests/bc/assignments.txt b/tests/bc/assignments.txt new file mode 100644 index 000000000000..6a776e7840ec --- /dev/null +++ b/tests/bc/assignments.txt @@ -0,0 +1,122 @@ +define x(x) { + return (i++ + x) +} +define y(x) { + return (++i + x) +} +define z(x) { + return (i *= 2) + x +} + +i++ +i-- +++i +--i + +(i++) +(i--) +(++i) +(--i) + +i += 1 +i +i -= -4 +i +i *= 5 +i +i /= 12.5 +i + +i = 0 + +(i += 1) +(i -= -4) +(i *= 5) +(i /= 12.5) + +i = 0 + +a[i++] += ++i +i-- +i-- +i +a[i] + +a[i]++ +a[i]-- +++a[i] +--a[i] + +i += 4 +i + +sqrt(i *= 4) +i +length(i /= 2) +i + +i = 4 +scale(i /= 2) +i + +i = -1 + +abs(i--) +abs(--i) +abs(++i) +abs(i++) + +i = -i + +a = 4 + +x(a) +i + +x(a *= 5) +a +i + +a = 4 + +y(a) +i + +y(a -= 2) +a +i + +a = 4 + +z(a) +i + +z(a /= 0.5) +a +i + +i = 1 + +if (i -= 1) print "true\n" +else print "false\n" + +if (i += 1) print "true\n" +else print "false\n" + +i = 3 + +while (i -= 2) print "i: ", i += 1, "\n" + +a = 5 + +for (i = 5; i-= 1; --a) print "i: ", i, "; a: ", a, "\n" + +define void t(x, y) { + print "x: ", x, "; y: ", y, "\n" +} + +t(i++, i++) +i + +t(++i, ++i) +i diff --git a/tests/bc/assignments_results.txt b/tests/bc/assignments_results.txt new file mode 100644 index 000000000000..d9e4e5ea33c9 --- /dev/null +++ b/tests/bc/assignments_results.txt @@ -0,0 +1,61 @@ +0 +1 +1 +0 +0 +1 +1 +0 +1 +5 +25 +2.00000000000000000000 +1 +5 +25 +2.00000000000000000000 +2 +1 +0 +2 +2 +3 +3 +2 +4 +4.00000000000000000000 +16 +21 +8.00000000000000000000 +20 +2.00000000000000000000 +1 +3 +2 +2 +5 +2 +22 +20 +3 +8 +4 +7 +2 +5 +14 +10 +28.00000000000000000000 +8.00000000000000000000 +20 +false +true +i: 2 +i: 4; a: 5 +i: 3; a: 4 +i: 2; a: 3 +i: 1; a: 2 +x: 0; y: 1 +2 +x: 3; y: 4 +4 diff --git a/tests/bc/boolean.txt b/tests/bc/boolean.txt new file mode 100644 index 000000000000..e26ded34bd1d --- /dev/null +++ b/tests/bc/boolean.txt @@ -0,0 +1,184 @@ +!0 +!1 +!(-129) +4 && 5 +4 && 0 +0 && 5 +4 && 5 && 7 +4 && 0 && 7 +0 && 5 && 7 +4 && 5 && 0 +0 && 0 && 7 +4 && 0 && 0 +0 && 5 && 0 +!4 && 5 +!4 && 0 +!0 && 5 +4 && !5 +4 && !0 +0 && !5 +!4 && 5 && 7 +!4 && 0 && 7 +!0 && 5 && 7 +!4 && 5 && 0 +!0 && 0 && 7 +!4 && 0 && 0 +!0 && 5 && 0 +4 && !5 && 7 +4 && !0 && 7 +0 && !5 && 7 +4 && !5 && 0 +0 && !0 && 7 +4 && !0 && 0 +0 && !5 && 0 +4 && 5 && !7 +4 && 0 && !7 +0 && 5 && !7 +4 && 5 && !0 +0 && 0 && !7 +4 && 0 && !0 +0 && 5 && !0 +!4 && !5 && 7 +!4 && !0 && 7 +!0 && !5 && 7 +!4 && !5 && 0 +!0 && !0 && 7 +!4 && !0 && 0 +!0 && !5 && 0 +!4 && 5 && !7 +!4 && 0 && !7 +!0 && 5 && !7 +!4 && 5 && !0 +!0 && 0 && !7 +!4 && 0 && !0 +!0 && 5 && !0 +4 && !5 && !7 +4 && !0 && !7 +0 && !5 && !7 +4 && !5 && !0 +0 && !0 && !7 +4 && !0 && !0 +0 && !5 && !0 +!4 && !5 && !7 +!4 && !0 && !7 +!0 && !5 && !7 +!4 && !5 && !0 +!0 && !0 && !7 +!4 && !0 && !0 +!0 && !5 && !0 +3 < 4 && 7 +3 && 4 >= 4 +3 > 4 && 7 +3 && 4 >= 5 +3 < 4 && 0 +0 && 4 >= 4 +3 > 4 && 0 +0 && 4 >= 5 +3 > 4 && 0 +0 && 4 < 4 +3 >= 4 && 0 +0 && 4 >= 5 +3 < 4 && 7 +3 && 4 >= 4 +3 > 4 && 7 > 4 +3 >= 2 && 4 >= 5 +3 < 4 && 0 > -1 +4 < 3 && 4 >= 4 +3 > 4 && 3 == 3 +3 != 3 && 4 >= 5 +3 > 4 && 0 > 1 +0 >= 0 && 4 < 4 +3 >= 4 && 0 >= 1 +0 <= -1 && 4 >= 5 +4 || 5 +4 || 0 +0 || 5 +4 || 5 || 7 +4 || 0 || 7 +0 || 5 || 7 +4 || 5 || 0 +0 || 0 || 7 +4 || 0 || 0 +0 || 5 || 0 +!4 || 5 +!4 || 0 +!0 || 5 +4 || !5 +4 || !0 +0 || !5 +!4 || 5 || 7 +!4 || 0 || 7 +!0 || 5 || 7 +!4 || 5 || 0 +!0 || 0 || 7 +!4 || 0 || 0 +!0 || 5 || 0 +4 || !5 || 7 +4 || !0 || 7 +0 || !5 || 7 +4 || !5 || 0 +0 || !0 || 7 +4 || !0 || 0 +0 || !5 || 0 +4 || 5 || !7 +4 || 0 || !7 +0 || 5 || !7 +4 || 5 || !0 +0 || 0 || !7 +4 || 0 || !0 +0 || 5 || !0 +!4 || !5 || 7 +!4 || !0 || 7 +!0 || !5 || 7 +!4 || !5 || 0 +!0 || !0 || 7 +!4 || !0 || 0 +!0 || !5 || 0 +!4 || 5 || !7 +!4 || 0 || !7 +!0 || 5 || !7 +!4 || 5 || !0 +!0 || 0 || !7 +!4 || 0 || !0 +!0 || 5 || !0 +4 || !5 || !7 +4 || !0 || !7 +0 || !5 || !7 +4 || !5 || !0 +0 || !0 || !7 +4 || !0 || !0 +0 || !5 || !0 +!4 || !5 || !7 +!4 || !0 || !7 +!0 || !5 || !7 +!4 || !5 || !0 +!0 || !0 || !7 +!4 || !0 || !0 +!0 || !5 || !0 +3 < 4 || 7 +3 || 4 >= 4 +3 > 4 || 7 +3 || 4 >= 5 +3 < 4 || 0 +0 || 4 >= 4 +3 > 4 || 0 +0 || 4 >= 5 +3 > 4 || 0 +0 || 4 < 4 +3 >= 4 || 0 +0 || 4 >= 5 +3 < 4 || 7 +3 || 4 >= 4 +3 > 4 || 7 > 4 +3 >= 2 || 4 >= 5 +3 < 4 || 0 > -1 +4 < 3 || 4 >= 4 +3 > 4 || 3 == 3 +3 != 3 || 4 >= 5 +3 > 4 || 0 > 1 +0 >= 0 || 4 < 4 +3 >= 4 || 0 >= 1 +0 <= -1 || 4 >= 5 +1 <= 0 && 1 <= 2 || 1 >= 0 && 1 == 2 +1 <= 0 && 1 <= 2 || 1 >= 0 && 1 != 2 +1 >= 0 && 1 <= 2 || 1 >= 0 && 1 == 2 diff --git a/tests/bc/boolean_results.txt b/tests/bc/boolean_results.txt new file mode 100644 index 000000000000..1c15dc7029ca --- /dev/null +++ b/tests/bc/boolean_results.txt @@ -0,0 +1,184 @@ +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +1 +1 +0 +1 +1 +1 +1 +1 +1 +1 +0 +1 +1 +1 +1 +0 +1 +1 +1 +1 +1 +0 +1 +1 +1 +1 +0 +1 +1 +1 +1 +1 +1 +1 +0 +1 +1 +1 +1 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +1 diff --git a/tests/bc/comp.txt b/tests/bc/comp.txt new file mode 100644 index 000000000000..73aa4508f345 --- /dev/null +++ b/tests/bc/comp.txt @@ -0,0 +1,132 @@ +-999999999 < -1 +-999999999 > -1 +-1000000000 < -1 +-1000000000 > -1 +-1 < -999999999 +-1 > -999999999 +-1 < -1000000000 +-1 > -1000000000 +-99999 < -1 +-99999 > -1 +-100000 < -1 +-100000 > -1 +-1 < -99999 +-1 > -99999 +-1 < -100000 +-1 > -100000 +-999999999 < -1000000000 +-999999999 > -1000000000 +-1000000000 < -999999999 +-1000000000 > -999999999 +-99999 < -100000 +-99999 > -100000 +-100000 < -99999 +-100000 > -99999 +999999999 < 1 +999999999 > 1 +1000000000 < 1 +1000000000 > 1 +1 < 999999999 +1 > 999999999 +1 < 1000000000 +1 > 1000000000 +99999 < 1 +99999 > 1 +100000 < 1 +100000 > 1 +1 < 99999 +1 > 99999 +1 < 100000 +1 > 100000 +999999999 < 1000000000 +999999999 > 1000000000 +1000000000 < 999999999 +1000000000 > 999999999 +99999 < 100000 +99999 > 100000 +100000 < 99999 +100000 > 99999 +-999999999 < 1 +-999999999 > 1 +-1000000000 < 1 +-1000000000 > 1 +-1 < 999999999 +-1 > 999999999 +-1 < 1000000000 +-1 > 1000000000 +-99999 < 1 +-99999 > 1 +-100000 < 1 +-100000 > 1 +-1 < 99999 +-1 > 99999 +-1 < 100000 +-1 > 100000 +-999999999 < 1000000000 +-999999999 > 1000000000 +-1000000000 < 999999999 +-1000000000 > 999999999 +-99999 < 100000 +-99999 > 100000 +-100000 < 99999 +-100000 > 99999 +999999999 < -1 +999999999 > -1 +1000000000 < -1 +1000000000 > -1 +1 < -999999999 +1 > -999999999 +1 < -1000000000 +1 > -1000000000 +99999 < -1 +99999 > -1 +100000 < -1 +100000 > -1 +1 < -99999 +1 > -99999 +1 < -100000 +1 > -100000 +999999999 < -1000000000 +999999999 > -1000000000 +1000000000 < -999999999 +1000000000 > -999999999 +99999 < -100000 +99999 > -100000 +100000 < -99999 +100000 > -99999 +v = 18237 +v == v +v != v +4 < 0 +-4 < 0 +4 > 0 +-4 > 0 +5 > 4 +-5 > 4 +5 > -4 +-5 > -4 +5 < 4 +-5 < 4 +5 < -4 +-5 < -4 +1000000000.000000001 == 999999999.000000001 +1000000000.000000001 > 999999999.000000001 +1000000000.000000001 < 999999999.000000001 +1000000000.000000001 == 1000000000.000000001 +1000000000.000000001 > 1000000000.000000001 +1000000000.000000001 < 1000000000.000000001 +1000000000.000000001 == 1000000000.00000000100000000 +1000000000.000000001 > 1000000000.00000000100000000 +1000000000.000000001 < 1000000000.00000000100000000 +1000000000.000000001 == 1000000000.000000001000000001 +1000000000.000000001 > 1000000000.000000001000000001 +1000000000.000000001 < 1000000000.000000001000000001 +999999999.000000001 == 1000000000.000000001 +999999999.000000001 > 1000000000.000000001 +999999999.000000001 < 1000000000.000000001 +1000000000.00000000100000000 == 1000000000.000000001 +1000000000.00000000100000000 > 1000000000.000000001 +1000000000.00000000100000000 < 1000000000.000000001 +1000000000.000000001000000001 == 1000000000.000000001 +1000000000.000000001000000001 > 1000000000.000000001 +1000000000.000000001000000001 < 1000000000.000000001 diff --git a/tests/bc/comp_results.txt b/tests/bc/comp_results.txt new file mode 100644 index 000000000000..5aa90ebcdbeb --- /dev/null +++ b/tests/bc/comp_results.txt @@ -0,0 +1,131 @@ +1 +0 +1 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +1 +1 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 diff --git a/tests/bc/cosine.txt b/tests/bc/cosine.txt new file mode 100644 index 000000000000..9e67df4c6f69 --- /dev/null +++ b/tests/bc/cosine.txt @@ -0,0 +1,44 @@ +scale = 25 +p = 4 * a(1) +scale = 20 +c(0) +c(0.5) +c(1) +c(2) +c(3) +c(-0.5) +c(-1) +c(-2) +c(-3) +c(p / 7) +c(-p / 7) +c(p / 4) +c(-p / 4) +c(p / 3) +c(-p / 3) +c(p / 2) +c(-p / 2) +c(3 * p / 4) +c(3 * -p / 4) +c(p) +c(-p) +c(3 * p / 2) +c(3 * -p / 2) +c(7 * p / 4) +c(7 * -p / 4) +c(13 * p / 4) +c(13 * -p / 4) +c(2 * p) +c(2 * -p) +c(131231) +c(-131231) +c(859799894.3562378245) +c(859799894.3562378245) +c(4307371) +c(3522556.3323810191) +c(44961070) +c(6918619.1574479809) +c(190836996.2180244164) +c(34934) +c(2483599) +c(13720376) diff --git a/tests/bc/cosine_results.txt b/tests/bc/cosine_results.txt new file mode 100644 index 000000000000..43d640f002df --- /dev/null +++ b/tests/bc/cosine_results.txt @@ -0,0 +1,41 @@ +1.00000000000000000000 +.87758256189037271611 +.54030230586813971740 +-.41614683654714238699 +-.98999249660044545727 +.87758256189037271611 +.54030230586813971740 +-.41614683654714238699 +-.98999249660044545727 +.90096886790241912623 +.90096886790241912623 +.70710678118654752440 +.70710678118654752440 +.50000000000000000000 +.50000000000000000000 +0 +0 +-.70710678118654752439 +-.70710678118654752439 +-1.00000000000000000000 +-1.00000000000000000000 +0 +0 +.70710678118654752439 +.70710678118654752439 +-.70710678118654752440 +-.70710678118654752440 +1.00000000000000000000 +1.00000000000000000000 +.92427123447397657316 +.92427123447397657316 +-.04198856352825241211 +-.04198856352825241211 +-.75581969921220636368 +-.01644924448939844182 +-.97280717522127222547 +-.92573947460230585966 +-.14343824233852988038 +.87259414746802343203 +.93542606623067050616 +-.52795540572178251550 diff --git a/tests/bc/decimal.txt b/tests/bc/decimal.txt new file mode 100644 index 000000000000..b90bf9588a6e --- /dev/null +++ b/tests/bc/decimal.txt @@ -0,0 +1,61 @@ +0 +0.0 +.00000 +000000000000000000000000.00000000000000000000000 +000000000000000000000000000135482346782356 +000000000000000000000000002 +1 +11 +123 +7505 +1023468723275435238491972521917846 +4343472432431705867392073517038270398027352709027389273920739037937960379637893607893607893670530278200795207952702873892786172916728961783907893607418973587857386079679267926737520730925372983782793652793 +-1 +-203 +-57 +-18586 +-31378682943772818461924738352952347258 +-823945628745673589495067238723986520375698237620834674509627345273096287563846592384526349872634895763257893467523987578690283762897568459072348758071071087813501875908127359018715023841710239872301387278 +.123521346523546 +0.1245923756273856 +-.1024678456387 +-0.8735863475634587 +4.0 +-6.0 +234237468293576.000000000000000000000000000000 +23987623568943567.00000000000000000005677834650000000000000 +23856934568940675.000000000000000435676782300000000000000456784 +77567648698496.000000000000000000587674750000000000458563800000000000000 +2348672354968723.2374823546000000000003256987394502346892435623870000000034578 +-2354768.000000000000000000000000000000000000 +-96739874567.000000000347683456 +-3764568345.000000000004573845000000347683460 +-356784356.934568495770004586495678300000000 +74325437345273852773827101738273127312738521733017537073520735207307570358738257390761276072160719802671980267018728630178.7082681027680521760217867841276127681270867827821768173178207830710978017738178678012767377058785378278207385237085237803278203782037237582795870 +-756752732785273851273728537852738257837283678965738527385272983678372867327835672967385278372637862738627836279863782673862783670.71738178361738718367186378610738617836781603760178367018603760178107735278372832783728367826738627836278378260736270367362073867097307925 +9812734012837410982345719208345712908357412903587192048571920458712.23957182459817249058172945781 +1891702357\ + 289370172037.90287102837 +011234567890 +01123456789.0 +0112345678.90 +011234567.890 +01123456.7890 +0112345.67890 +011234.567890 +01123.4567890 +0112.34567890 +011.234567890 +01.1234567890 +0.11234567890 +.011234567890 +.0011234567890 +.00011234567890 +.000011234567890 +.0000011234567890 +.00000011234567890 +.000000011234567890 +.0000000011234567890 +.00000000011234567890 +.000000000011234567890 +.0000000000011234567890 diff --git a/tests/bc/decimal_results.txt b/tests/bc/decimal_results.txt new file mode 100644 index 000000000000..e0aac3cc8519 --- /dev/null +++ b/tests/bc/decimal_results.txt @@ -0,0 +1,75 @@ +0 +0 +0 +0 +135482346782356 +2 +1 +11 +123 +7505 +1023468723275435238491972521917846 +43434724324317058673920735170382703980273527090273892739207390379379\ +60379637893607893607893670530278200795207952702873892786172916728961\ +78390789360741897358785738607967926792673752073092537298378279365279\ +3 +-1 +-203 +-57 +-18586 +-31378682943772818461924738352952347258 +-8239456287456735894950672387239865203756982376208346745096273452730\ +96287563846592384526349872634895763257893467523987578690283762897568\ +45907234875807107108781350187590812735901871502384171023987230138727\ +8 +.123521346523546 +.1245923756273856 +-.1024678456387 +-.8735863475634587 +4.0 +-6.0 +234237468293576.000000000000000000000000000000 +23987623568943567.00000000000000000005677834650000000000000 +23856934568940675.000000000000000435676782300000000000000456784 +77567648698496.00000000000000000058767475000000000045856380000000000\ +0000 +2348672354968723.237482354600000000000325698739450234689243562387000\ +0000034578 +-2354768.000000000000000000000000000000000000 +-96739874567.000000000347683456 +-3764568345.000000000004573845000000347683460 +-356784356.934568495770004586495678300000000 +74325437345273852773827101738273127312738521733017537073520735207307\ +570358738257390761276072160719802671980267018728630178.7082681027680\ +52176021786784127612768127086782782176817317820783071097801773817867\ +8012767377058785378278207385237085237803278203782037237582795870 +-7567527327852738512737285378527382578372836789657385273852729836783\ +72867327835672967385278372637862738627836279863782673862783670.71738\ +17836173871836718637861073861783678160376017836701860376017810773527\ +8372832783728367826738627836278378260736270367362073867097307925 +9812734012837410982345719208345712908357412903587192048571920458712.\ +23957182459817249058172945781 +1891702357289370172037.90287102837 +11234567890 +1123456789.0 +112345678.90 +11234567.890 +1123456.7890 +112345.67890 +11234.567890 +1123.4567890 +112.34567890 +11.234567890 +1.1234567890 +.11234567890 +.011234567890 +.0011234567890 +.00011234567890 +.000011234567890 +.0000011234567890 +.00000011234567890 +.000000011234567890 +.0000000011234567890 +.00000000011234567890 +.000000000011234567890 +.0000000000011234567890 diff --git a/tests/bc/divide.txt b/tests/bc/divide.txt new file mode 100644 index 000000000000..cba4af9dc8ba --- /dev/null +++ b/tests/bc/divide.txt @@ -0,0 +1,62 @@ +0 / 1 +0 / 321566 +0 / 0.3984567238456 +1 / 1 +1 / 1287469297356 +1 / 0.2395672438567234 +1 / 237586239856.0293596728392360 +1249687284356 / 3027949207835207 +378617298617396719 / 35748521 +9348576237845624358 / 0.9857829375461 +35768293846193284 / 2374568947.045762839567823 +-78987234567812345 / 876542837618936 +-356789237555535468 / 0.3375273860984786903 +-5203475364850390 / 435742903748307.70869378534043296404530458 +-0.37861723347576903 / 7385770896 +-0.399454682043962 / 0.34824389304 +-0.6920414523873204 / 356489645223.76076045304879030 +-35872917389671.7573280963748 / 73924708 +-78375896314.4836709876983 / 0.78356798637817 +-2374123896417.143789621437581 / 347821469423789.1473856783960 +-896729350238549726 / -34976289345762 +-2374568293458762348596 / -0.8792370647234987679 +-237584692306721845726038 / -21783910782374529637.978102738746189024761 +-0.23457980123576298375682 / -1375486293874612 +-0.173897061862478951264 / -0.8179327486017634987516298745 +-0.9186739823576829347586 / -0.235678293458756239846 +-0.9375896183746982374568 / -13784962873546.0928729395476283745 +-2930754618923467.12323745862937465 / -734869238465 +-23745861923467.874675129834675 / -0.23542357869124756 +-3878923750692883.7238596702834756902 / -7384192674957215364986723.9738461923487621983 +1 / 0.00000000000000000000000000000000000000000002346728372937352457354204563027 +3496723859067234 / 298375462837546928347623059375486 +-47589634875689345 / 37869235 +-6324758963 / 237854962 +2 / -3 +89237423 / -237856923854 +123647238946 / -12467 +-2 / -3 +-13 / -7 +-15 / -7 +-12784956 / -32746 +-127849612 / -23712347682193 +1 / 0.2395672438567234 +scale = 0 +15 / 4 +17 / 4 +2389473 / 5 +346728934 / 23958 +-47589634875689345 / 37869235 +-6324758963 / 237854962 +2 / -3 +16 / 5 +14 / 5 +123647238946 / -12467 +-2 / -3 +-13 / -7 +-15 / -7 +-12784956 / -32746 +-3191280681 / 641165986 +scale = 0; -899510228 / -2448300078.40314 +scale = 0; -7424863 / -207.2609738667 +scale = 0; 3769798918 / 0.6 diff --git a/tests/bc/divide_results.txt b/tests/bc/divide_results.txt new file mode 100644 index 000000000000..a095066e1ba2 --- /dev/null +++ b/tests/bc/divide_results.txt @@ -0,0 +1,61 @@ +0 +0 +0 +1.00000000000000000000 +.00000000000077671755 +4.17419336592637110778 +.00000000000420899796 +.00041271738677857404 +10591131829.40901859967857131767 +9483402361494453751.52388015648196297248 +15063068.13735316451497043884 +-90.11223545260531110575 +-1057067521778623447.45138528213564485251 +-11.94161814246320631346 +-.00000000005126306228 +-1.14705437777218917343 +-.00000000000194126663 +-485262.88923145638029569727 +-100024372711.74763635544535424582 +-.00682569681609989277 +25638.20711150436682153521 +2700714504347599627864.24626421085374010264 +10906.42973524078145692731 +.00000000000000017054 +.21260557443109085166 +3.89799997647407910677 +.00000000000006801538 +3988.13076601933678578945 +100864416620775.31076855630746548983 +.00000000052530099381 +42612515855353136519261264261472677699404182.78776061098893912189 +.00000000000000001171 +-1256683291.21751059930310184507 +-26.59082202792136831688 +-.66666666666666666666 +-.00037517269438317975 +-9917962.53677709152161706906 +.66666666666666666666 +1.85714285714285714285 +2.14285714285714285714 +390.42802174311366273743 +.00000539168933053431 +4.17419336592637110778 +3 +4 +477894 +14472 +-1256683291 +-26 +0 +3 +2 +-9917962 +0 +1 +2 +390 +-4 +0 +35823 +6282998196 diff --git a/tests/bc/engineering.txt b/tests/bc/engineering.txt new file mode 100644 index 000000000000..cf9c0c1b0117 --- /dev/null +++ b/tests/bc/engineering.txt @@ -0,0 +1,19 @@ +obase=1 +0 +1 +-34 +298 +-8933 +29488 +-148232 +8927559 +.2 +-.02 +.002 +-.0003 +.0000209310 +-.00000289362 +.000000859289 +-.02983672 +.20201296 +-.8907210897000000000000000000 diff --git a/tests/bc/engineering_results.txt b/tests/bc/engineering_results.txt new file mode 100644 index 000000000000..dd26f9bbb138 --- /dev/null +++ b/tests/bc/engineering_results.txt @@ -0,0 +1,18 @@ +0 +1e0 +-34e0 +298e0 +-8.933e3 +29.488e3 +-148.232e3 +8.927559e6 +200e-3 +-20e-3 +2e-3 +-300e-6 +20.9310e-6 +-2.89362e-6 +859.289e-9 +-29.83672e-3 +202.01296e-3 +-890.7210897000000000000000000e-3 diff --git a/tests/bc/errors.txt b/tests/bc/errors.txt new file mode 100644 index 000000000000..738b7a0c9dd8 --- /dev/null +++ b/tests/bc/errors.txt @@ -0,0 +1,258 @@ +4 != 0 &^ 34 == 5 +4 & 5 +4 != 0 |% 34 == 5 +4 | 5 +3 $ 7 +4 @^ 5 +' +1.892389ep +"ontsjahoesu +/* oerchaoegu +\(<267)11111111111111111111111111111 +j(1,) +a(3,3 +() +(((((((((((((((((((())))))))))))))) +3 + +3 - - +233*+ 32 +233*+ 32 869356734856 +293 * += 38297 +293 * += 38297 2839 +293 - %= 38297 +a * += 38297 2839 +a += * 38297 +a += * 38297 2839 +a %= % 38297 +a %= / 38297 2839 +"s" + 3 +3 - "o" +"e" * "j" +"3" / "2" +!"3" +--"4" +"4"++ ++ 4 +* 3 ++ 4 + 3 +* 3 + 2 +c++ + +c + ++ +(e * a)++ +++(e ^ a) +(e + a)-- +--(e - a) +++e++ +++e-- +--e++ +--e-- +++(e) +(e)-- +++++e +e---- +++-e +---e +++x += 4 +x++ += 4 +(i += 1) += 1 +-i+=1 +e a +c! +e! + a +a + e! +(0||!) +(238497*(29348+238) +a[234 +a238] +a[(0] + 1) +(1 + a[0)] +283947 2983745289 +a 4 +a g +define r(e,) {} +p(,e) +p(e,) +! + 1l(2) +l957) +l( +g[si+= j []a[s]>=] +j[s +!>5d +a(1..) +a(1;) +1.. +1..0 +99""""""""""""""""""""""""""""""""99.9999999 + 0.0000000000001 +pll[zx<zb]--(<.+)1 +a(g2[] -3) +.--1)-1) +.--1) +-1) +(.2==)--d_ -8234+68. -d_ ---d_ -d_ ---d_ -d2 + 5 +break +continue +auto a,u +define i(e) { auto p,; return(p); } +define i(e) { auto e; return(e); } +define i(e) { auto q; auto n; return(e); } +define i(e) { auto q; e+=q; auto n; return(e); } +define i(e, e) { auto p; return(p*e); } +define i(e, g, e) { auto p; return(p*e*g); } +define x(e) { define q(f) { return (0); } return q(e); } +define x(3) { return q(e); } +define x([]e) { return q(e); } +define x([]) { return q(e); } +define x(e,[]) { return q(e); } +define x(a[]) { return a[]; } +define x(*a) { return a; } +define x(a) return a; +while e!=0 { i+=1 } +while (e!=0) { i+=1 } if (x) x +for i=0;i<2;++i { c+=i; } +for (i=0;i<2,++i) { c+=i; } +for (i=0,i<2;++i) { c+=i; } +for (i<2;++i) { c+=i; } +for (i=0;++i) { c+=i; } +return (0) +sqrt(3,4) +length(3,4) +scale(3,4) +3=4 +3+=4 +4-=3 +4*=3 +4/=3 +4%=3 +4^=3 +3++ +--3 +a[] = 4 +1 + $ +a[18446744073709552000] = 0 +j(1,2,3) +j(1,a[]) +x(2) +read(3) +scale = 18446744073709552000 +ibase = 18446744073709552000 +obase = 18446744073709552000 +scale = -1 +sqrt(-1) +0 ^ -251 +1/0 +1%0 +0/0 +0%0 +0/0.000000 +0.000000%0.00000000 +root(-15, 4) +root(5, 0) +root(13, -5) +root(1548, 0) +irand(-4) +irand(3289.10827340) +scale = 10000000000000000000000000000000000 +obase += 999999999999999999999999999999999999999999999999999999999999999999999999 +ibase *= 9999999999999999999999999999999999999999999999999999999999999.9 +obase += 9999999999999999999999999999999 +ibase *= 99999999999999999999999999999.9 +scale = 18446744073709551616 +1<<18446744073709551616 +1>>18446744073709551616 +1<<18446744073709551614 +1>>18446744073709551614 +i /= 0 +4^2903482.29304823 +4 @ 2389.21982 +1 @ -38 +3 @ 81906237540187263501872350127351023651023517239512635109283651203985123581235 +9 << 182397.283906123 +8 << -19 +4 << 1298376540182376510982365108263510823651082365120983561239851623590812365192830 +5 >> 21892073.28901672 +2 >> -29 +7 >> 10289374108237541829374123894571028345718923751908237518927809127350891723908 +"string"$ +-"str2" +a[] + a +a - a[] +a[] * a[] +a[] / a +a % a[] +a[] ^ a[] +c(a[]) +j(a[], a) +j(a, a[]) +j(a[], a[]) +c(; +c(0; +c[0; +++c(0) +--c(1) +++scale(34.4) +print "3", a[], "3" +print a[] +print a[], "e" +print; +print 1,2 print 45 +print "s" "4" +} +if x x +if (x +while (x +for (i = 0 +for (i = 0; i < 10 +for (i = 0; i < 10; ++i +define %(x) { return x; } +define x x) { return x; } +for (i=0; i; ++i) if (i) print "stuff"; else i; if (!i) i + 1; else i; } +for (i=0; i; ++i) } +if (i == 0) break; else i; +while (x != 0) { break 4; } +while (x != 0) { continue 4; } +while (x != 0) 4 else 5 +else 1 +define t(a[) { return a[0]; } +define u() { auto a[; return a[0]; } +define v() { auto a, 4; return a; } +define w() { auto a 4; return a; } +define r() { auto a[], 4; return a[0]; } +define s() { auto a[ 4; return a[0]; } +define void y() { return (1); } +print uint(0) +4 + uint(4) +s(uint(5)) +4 + 4 scale +4 + 4 scale(s) +4 * 4 read() +5 abs(-5) +2 sqrt(4) +5 + 3 length(4) +x$if(x) x else x +bytes(1) + 4 +3 / 0.00000000000000 +4e4.4 +4e-4.2 +a[2^63] = 1 +ibase = 100 +length(l[] + i[]) +length("string") +abs("string") +abs(a[]) +scale("string") +scale(b[]) +sqrt("string") +sqrt(c[]) +sqrt +length +abs +sqrt(1 +length(1 +abs(1 +scale(.2093 +a2(0,0) +read +read( +read() +read() +read() diff --git a/tests/bc/errors/01.txt b/tests/bc/errors/01.txt new file mode 100644 index 000000000000..987f05c7a8c1 --- /dev/null +++ b/tests/bc/errors/01.txt @@ -0,0 +1,368 @@ +a(s691027461l[ ba]) +scal[ ca] +a +a +e +cs +c + +a +s(scal[ ba]) +scal[ ca] +u +a +e +cs +c + +a +s(scal[ ba]) +scal[ ca] +u +a +s +c = l[ ca] +a +a +sa +e +cs +c + +a(s691027461l[ ba]) +scal[ ca] +a +a +e +cs +c + +a +s(scal[ ba]) +scal[ ca] +a +a +s +c = l[ ca] +a +s +c = l[ ca] +a(s691027461l[ ba]) +a +e +cs +c + +a +s(scal[ ba]) +scal[ ca] +u +a +s +c = l[ ca] +a +a +sa +e +cs +c + +a(s691027461l[ ba]) +scal[ ca] +a +a*e +cs +c + +a +s(scal[ ba]) +scal[ ca] +a +a +s +c = l[ ca] +a +a +sa +e +css +c = c[ ca] +a +a +sa +e +cs +a +a +sa +e +cs +c + +a(s691027461l[ ba]) + cs +c = l[ ca] +a +a +sa +e +cs +c + +a(s691027461l[ ba]) +scal[ ca] +a +a +e +cs +c + +a +s(scal[ ba]) +scal[ ca] +a +a +s +c = l[ ca] +a +a +sa +e +css +c = l[ ca] +a +a +sa +e +cs +a +b +sa +e +cs +c + +a(s691027461l[ ba]) +scal[ ca] +a +a +e +cs + +scal[ ca] +a +a +e +cs +c + +a +s(scal[ ba]) +scal[ ca] +u +a +s +c = l[ ca] +a +a +sa +e +cs +c + +a(s691027461l[ ba]) +scal[ ca] +a +a +e +cs +c + +a +s(scal[ ba]) +scal[ ca] +a +a +s +c = l[ ca] +a +a +sa +e +css +c = l[ ca] +a +a +sa +e +cs +a +a +sa +e +cs +c + +a(s691027461l[ ba]) +scs +c = l[ ca] +a +a +sa +e +cs +c + +a(s691027461l[ ba]) +scal[ ca] +a +a +e +cs +c + +a +s(scal[ ba]) +s(1) +sd= 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scalaaaaaaaaaaaaa^aaaaaaaaaaaaaaa20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=asj-=se-=as-=se-=axse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=as=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscales=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +sd= 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scale ==se-=a(1) +scale = 20 +a(0) +a==se-=as+=ase-=se8=as-=se-=a(1) +s ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=se-=xse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=as-=ase-=se-=se4=ase-=se-=as-=e-=as=ae-=a(1) +sc= 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=se-=xse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +sd= 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase = 20 +a(0) +a=i-=se-=ase-=se-=ase-=s-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=a_=as-=ase-=se-=se4=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=se-=xse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as*=e-=as=aaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaa20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=axse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=as=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==sse-=ase-=s-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=as-=ase-=se-=se4=ase-=se-=as-=e-=as=ase0=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=se-=xse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=aaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaa20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=axse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=as=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=as-=ase-=se-=as-=as0 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=se-=xse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=aaa^aaaaaaaaaaaaaaa20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=axse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=as=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscales=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +sd= 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +de ==se-=a(1) +scale = 20 +a(0) +a==se-=as-=ase-=se8=as-=se-=a(1) +s ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=se-=xse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=as-=ase-=se-=se4=ase-=se-=as-=e-=as=ae-=a(1) +sc= 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=se-=xse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +sd= 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase = 20 +a(0) +a1i-=se-=ase-=se-=ase-=s-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=c-=a_=as-se-=se-=se4=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=asse-=as-=e-=as=aaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaa20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=axse!=e-=ase-=i-=se-=ase-=se-=se-=ase-=se-=as-=e-=as=ase-=se-=as-=as=i-=se-=ase-=-=se-=ascccc-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=s-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +scale = 20 +a(0) +a=i-=se-=ase-=se-=ase-=i-=s-=se-=xse!=e-=as=as-=ase-=se-=se4=ase-=se-=as-=e-=as=ase-=se-=as-=ase-=se-=as-=se-=a(1) +scscale ==se-=a(1) +sBale = 20 +a diff --git a/tests/bc/errors/02.txt b/tests/bc/errors/02.txt new file mode 100644 index 000000000000..a42dca886b75 --- /dev/null +++ b/tests/bc/errors/02.txt @@ -0,0 +1,16 @@ +obase^= 20-f-b-4^-f-4-4^-f-4^-d +-f-4>-f-4^-0;759634576394-f-4^-f-4-4^-f-4^-4 +-f-4^-f>4^-4-f-f-4^-f-4-4^-f-4^-d +-f-4>-f-4^-0;7-f-4^-f-4-4^-f-4^-4 +-f-4^-f>4^-4-f-b-4^-f-4-4^-f-4^-d +-f-4>-f-4^-0;7454-f-4^-f-4-4^-f-4^-4 +-f-4^-f>4^-4-f-f-4^-f-4-4^-f-4^-d +-f-4>-f-4^-0;75576394.3946587934658364894^-4-f-f-4^-f-4-4-4^-f-4-4^-f-4^-4 +-f*.^-f>4^-4-f-b-4^-f-4-4^-f-4^-d +-f-4>-f-4^-0;759634576394-f-4^-f-4-4^-f-4^-4 +-f-4^-f>4^-4-f-f-4^-f-4-4^-f-4^-d +-f-4>-f-4^-0;7-f-4^-f-4-4^-f-4^-4 +-f-4^-f>4^-4-f-b-4^-f-4-4^-f-4^-d +-f-4>-f-4^-0;74576394-f-4^-f-4-4^-f-4^-4 +-f-4^-f>4^-4-f-f4^-f-4-4^-f-4^-d +-f-4>-f-B^-0;75576394.3946587934658364894^-4-f-f-4^-f-4-4^-W-4^-d diff --git a/tests/bc/errors/03.txt b/tests/bc/errors/03.txt new file mode 100644 index 000000000000..25fee2fa07fe --- /dev/null +++ b/tests/bc/errors/03.txt @@ -0,0 +1,2 @@ +for (i = 0; ; ) +for (i = 0; ;(ssqrt()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(ssssq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s()-p(sq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s(ssqrt()-p(t()-p(sstp(ssqrt()-sst()-p(qrt()-p(s()-p(srt()-s(ssqrt()-v(qrt(ssqrt()-p(ssqrt()-s(ssqrt()-p(ssssq(ssqrt()-p(ssq(ssqrt()-p(t()-sst()-prt()-s(ssqrt()-p(q(ssqrt()-p(ssqrt()-sst()-ssqrt()-t(ss(s()-p(srt()-s(ssqrt()-p(s(ssqrtt()-p(ssqrt()-sst()-p(qrt()-p(s()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(qr (itt()-p(q(s(ssqrt()-t(ss(ssqrt()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(sstsq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(sstsq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s(ssqrt()-p(t()-p(sstp(ssqrt()-sst()-p(qrt()-p(s()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(qr (itt()-p(q(s(ssqrt()-t(ss(ssqrt()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(sstsq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s()-p(srt()-s(ssqrt()-p(sstss(osqrt()-p(sstsq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s(ssqrt()-p(ssqrt()-sstfor (itt()-p(q(s(ssqrt()-t(ss(ssqrt()-p(srt()-s(ssqrt()-p(sstss(sssq(ssqrt()-p(ssqrt()-sst()-prt()-s(ssqrt()-p(q(ssqrt()-ssqrt(qrt()-p(s()-p(srt(s(ssqrt()-p(q(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s(ssqrt()-p(ssqrt()-sst()-p(ssqrt()-ssq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s-t()-s(ssurt()-p(sstss(ssqrt()-p(qr (itt()-p(q(s(ssqrt()-t(ss(ssqrt()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(sstsq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s()-p(srt()-s(ssqrt()-p(sstss(osqrt()-p(sstsq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s(ssqrt()-p(ssqrt()-sstfor (itt()-p(q(s(ssqrt()-t(ss(ssqrt()-p(srt()-s(ssqrt()-p(sstss(sssq(ssqrt()-p(ssqrt()-sst()-prt()-s(ssqrt()-p(q(ssqrt()-ssqrt(qrt()-p(s()-p(srt(s(ssqrt()-p(q(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s(ssqrt()-p(ssqrt()-sst()-p(ssqrt()-ssq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s-p(ssqrt()-sst()-p(qrt()-p(s(st()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(ssssq(ssqrt()-p(ssqrt()-sst()-p(qrt()-p(s()-p(srt()-s(ssqrt()-p(sstss(ssqrt()-p(ssssq(ssqrt()-p(ssqrt()-sst()-p(qrtrrrrr()-p(s(ssqrt()-p(ssqrt()-sst()-p(ssqrt(qrt(ssqrt()-p(ssqrt()-s(ssqrt()-p(ssssq(ssqrt()-p(ssq(ssqrt()-p(ssqrt()-sst()-prt()-s(ssqrt()-p(q(ssqrt()-p(ssqrt()-sst()-ssqrt()-t(ss(s()-p(srt()-s(ssqrt()-p(s(ssqrtt()-p()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))()%t(ss(s()-p(srt()))))))))))))))))))))))t()Cp(q(s(ssqrt()-t(ss(ssqrt()-p(srt()-s(ssqrt()-p(srt()-p(ssqrt()-sst=)-p(qrt()-p(s(t()-p(qrt()-p(s(ssqrt()-p(ssqrt()-sst()-p(ssqrt(qrt(ssqrt()-p(ssqrt()-s(ssqrt()-p(ssts*=!dd_ed0;#239 diff --git a/tests/bc/errors/04.txt b/tests/bc/errors/04.txt new file mode 100644 index 000000000000..bb81925f15a4 --- /dev/null +++ b/tests/bc/errors/04.txt @@ -0,0 +1 @@ +"String diff --git a/tests/bc/errors/05.txt b/tests/bc/errors/05.txt new file mode 100644 index 000000000000..dd4f3dfce14c --- /dev/null +++ b/tests/bc/errors/05.txt @@ -0,0 +1 @@ +/* Comment diff --git a/tests/bc/errors/06.txt b/tests/bc/errors/06.txt new file mode 100644 index 000000000000..29fe6be37021 --- /dev/null +++ b/tests/bc/errors/06.txt @@ -0,0 +1 @@ +while (i == 0) { diff --git a/tests/bc/errors/07.txt b/tests/bc/errors/07.txt new file mode 100644 index 000000000000..7cc293a73d8b --- /dev/null +++ b/tests/bc/errors/07.txt @@ -0,0 +1,36 @@ +for (q = F; i <=020; ++i) # i +{print "n" +if(6)if(6){3 +} +{pryn} +""} +{pryn} +{print "" ""} +{pryn} +{print "" ""} +{pryn} +{print "" ""} +{pryn} + ""} +{pryn} +{print "" ""} +{pryn} +{print "" ""} +{tryn} +{print "" ""} +{print "" ""} +{pryn} +{print "" ""} +{pryn} +{print "" ""} +{pryn} + ""} +{prynn} +{print "" ""} +{print "" ""} +{pryn} +{print "" ""} +{pryn} +{print "" ""} +{pryn} + ""} diff --git a/tests/bc/errors/08.txt b/tests/bc/errors/08.txt new file mode 100644 index 000000000000..6b36864add91 --- /dev/null +++ b/tests/bc/errors/08.txt @@ -0,0 +1,3 @@ +define i(x) { +c673 +if(267)} diff --git a/tests/bc/errors/09.txt b/tests/bc/errors/09.txt new file mode 100644 index 000000000000..9558d1b4a2bc --- /dev/null +++ b/tests/bc/errors/09.txt @@ -0,0 +1,18 @@ +de +-1\ +#^ - 74 aA; ++i) +{print "n" +if(1)if(1)#3 +} +if(0)if(1){3 +} +else 4\ +#^ - 74 aA; ++i)f(1)if(1){3 +} +if(0)if(1){3 +} +else 4 +if(0){if(1){3 +}} +elqe else} +if( diff --git a/tests/bc/errors/10.txt b/tests/bc/errors/10.txt new file mode 100644 index 000000000000..44530b49f9cc --- /dev/null +++ b/tests/bc/errors/10.txt @@ -0,0 +1,13 @@ +defi$++ +--x +x += 9 +x +length(2381) +strt(9(çsbale(238.1) +x=2 +x[0]=3 +(x) +(x[p])*)scale) +(ibase) +(o +--x
\ No newline at end of file diff --git a/tests/bc/errors/11.txt b/tests/bc/errors/11.txt new file mode 100644 index 000000000000..94be82ee3d05 --- /dev/null +++ b/tests/bc/errors/11.txt @@ -0,0 +1,408 @@ +#! /usr/bin/bc -q + +define printarray(a[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a[i] + } +} + +define a2(a[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a[i] = a[i] * a[i] + } + + printarray(len, len) +} + +define a4(a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = a__[i] * a__[i] + } + + printarray(a__[], len) +} + +define a6(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = a__[i] * a__[i] + } + + printarray(a__[], len) +} + +define a1(*a[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a[i] = i + } + + a2(a[], len) + + printarray(a[], len) +} + +define a3(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = i + } + + a4(a__[], len) + + printarray(a__[], len) +} + +define a5(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = i + } + + a2(a__[], len) + + printarray(a__[], len) +} + +define a7(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = i + } + + a6(a__[], len) + + printarray(a__[], len) +} + +len = 16 + +a1(a[], len) +printarray(a[], len) +a3(a[], len) +printarray(a[], len) +a5(a[], len) +printarray(a[], len) +a7(a[], len) +printarray(a[], len) + +a1(b[], len) +printarray(b[], len) +a3(b[], len) +printarray(b[], len) +a5(b[], len) +printarray(b[], len) +a7(b[], len) +printarray(b[], len) + +a1[0] = 0 +a2[0] = 0 +a3[0] = 0 +a4[0] = 0 +a5[0] = 0 +a6[0] = 0 +a7[0] = 0 +a8[0] = 0 +a9[0] = 0 +a10[0] = 0 +a11[0] = 0 +a12[0] = 0 +a13[0] = 0 +a14[0] = 0 +a15[0] = 0 +a16[0] = 0 +a17[0] = 0 +a18[0] = 0 +a19[0] = 0 +a20[0] = 0 +a21[0] = 0 +a22[0] = 0 +a23[0] = 0 +a24[0] = 0 +a25[0] = 0 +a26[0] = 0 +a27[0] = 0 +a28[0] = 0 +a29[0] = 0 +a30[0] = 0 +a31[0] = 0 +a32[0] = 0 +a33[0] = 0 +a34[0] = 0 +a35[0] = 0 +a36[0] = 0 +a37[0] = 0 +a38[0] = 0 +a39[0] = 0 +a40[0] = 0 +a41[0] = 0 +a42[0] = 0 +a43[0] = 0 +a44[0] = 0 +a45[0] = 0 +a46[0] = 0 +a47[0] = 0 +a48[0] = 0 +a49[0] = 0 +a50[0] = 0 +a51[0] = 0 +a52[0] = 0 +a53[0] = 0 +a54[0] = 0 +a55[0] = 0 +a56[0] = 0 +a57[0] = 0 +a58[0] = 0 +a59[0] = 0 +a60[0] = 0 +a61[0] = 0 +a62[0] = 0 +a63[0] = 0 +a64[0] = 0 +a65[0] = 0 +a66[0] = 0 +a67[0] = 0 +a68[0] = 0 +a69[0] = 0 +a70[0] = 0 +a71[0] = 0 +a72[0] = 0 +a73[0] = 0 +a74[0] = 0 +a75[0] = 0 +a76[0] = 0 +a77[0] = 0 +a78[0] = 0 +a79[0] = 0 +a80[0] = 0 +a81[0] = 0 +a82[0] = 0 +a83[0] = 0 +a84[0] = 0 +a85[0] = 0 +a86[0] = 0 +a87[0] = 0 +a88[0] = 0 +a89[0] = 0 +a90[0] = 0 +a91[0] = 0 +a92[0] = 0 +a93[0] = 0 +a94[0] = 0 +a95[0] = 0 +a96[0] = 0 +a97[0] = 0 +a98[0] = 0 +a99[0] = 0 +a100[0] = 0 +a101[0] = 0 +a102[0] = 0 +a103[0] = 0 +a104[0] = 0 +a105[0] = 0 +a106[0] = 0 +a107[0] = 0 +a108[0] = 0 +a109[0] = 0 +a110[0] = 0 +a111[0] = 0 +a112[0] = 0 +a113[0] = 0 +a114[0] = 0 +a115[0] = 0 +a116[0] = 0 +a117[0] = 0 +a118[0] = 0 +a119[0] = 0 +a120[0] = 0 +a121[0] = 0 +a122[0] = 0 +a123[0] = 0 +a124[0] = 0 +a125[0] = 0 +a126[0] = 0 +a127[0] = 0 +a128[0] = 0 +a129[0] = 0 +a130[0] = 0 +a131[0] = 0 +a132[0] = 0 +a133[0] = 0 +a134[0] = 0 +a135[0] = 0 +a136[0] = 0 +a137[0] = 0 +a138[0] = 0 +a139[0] = 0 +a140[0] = 0 +a141[0] = 0 +a142[0] = 0 +a143[0] = 0 +a144[0] = 0 +a145[0] = 0 +a146[0] = 0 +a147[0] = 0 +a148[0] = 0 +a149[0] = 0 +a150[0] = 0 +a151[0] = 0 +a152[0] = 0 +a153[0] = 0 +a154[0] = 0 +a155[0] = 0 +a156[0] = 0 +a157[0] = 0 +a158[0] = 0 +a159[0] = 0 +a160[0] = 0 +a161[0] = 0 +a162[0] = 0 +a163[0] = 0 +a164[0] = 0 +a165[0] = 0 +a166[0] = 0 +a167[0] = 0 +a168[0] = 0 +a169[0] = 0 +a170[0] = 0 +a171[0] = 0 +a172[0] = 0 +a173[0] = 0 +a174[0] = 0 +a175[0] = 0 +a176[0] = 0 +a177[0] = 0 +a178[0] = 0 +a179[0] = 0 +a180[0] = 0 +a181[0] = 0 +a182[0] = 0 +a183[0] = 0 +a184[0] = 0 +a185[0] = 0 +a186[0] = 0 +a187[0] = 0 +a188[0] = 0 +a189[0] = 0 +a190[0] = 0 +a191[0] = 0 +a192[0] = 0 +a193[0] = 0 +a194[0] = 0 +a195[0] = 0 +a196[0] = 0 +a197[0] = 0 +a198[0] = 0 +a199[0] = 0 +a200[0] = 0 +a201[0] = 0 +a202[0] = 0 +a203[0] = 0 +a204[0] = 0 +a205[0] = 0 +a206[0] = 0 +a207[0] = 0 +a208[0] = 0 +a209[0] = 0 +a210[0] = 0 +a211[0] = 0 +a212[0] = 0 +a213[0] = 0 +a214[0] = 0 +a215[0] = 0 +a216[0] = 0 +a217[0] = 0 +a218[0] = 0 +a219[0] = 0 +a220[0] = 0 +a221[0] = 0 +a222[0] = 0 +a223[0] = 0 +a224[0] = 0 +a225[0] = 0 +a226[0] = 0 +a227[0] = 0 +a228[0] = 0 +a229[0] = 0 +a230[0] = 0 +a231[0] = 0 +a232[0] = 0 +a233[0] = 0 +a234[0] = 0 +a235[0] = 0 +a236[0] = 0 +a237[0] = 0 +a238[0] = 0 +a239[0] = 0 +a240[0] = 0 +a241[0] = 0 +a242[0] = 0 +a243[0] = 0 +a244[0] = 0 +a245[0] = 0 +a246[0] = 0 +a247[0] = 0 +a248[0] = 0 +a249[0] = 0 +a250[0] = 0 +a251[0] = 0 +a252[0] = 0 +a253[0] = 0 +a254[0] = 0 +a255[0] = 0 +a256[0] = 0 + +a1(a253[], len) +printarray(a253[], len) +a3(a253[], len) +printarray(a253[], len) +a5(a253[], len) +printarray(a253[], len) +a7(a253[], len) +printarray(a253[], len) + +a1(a254[], len) +printarray(a254[], len) +a3(a254[], len) +printarray(a254[], len) +a5(a254[], len) +printarray(a254[], len) +a7(a254[], len) +printarray(a254[], len) + +a1(a255[], len) +printarray(a255[], len) +a3(a255[], len) +printarray(a255[], len) +a5(a255[], len) +printarray(a255[], len) +a7(a255[], len) +printarray(a255[], len) + +a1(a256[], len) +printarray(a256[], len) +a3(a256[], len) +printarray(a256[], len) +a5(a256[], len) +printarray(a256[], len) +a7(a256[], len) +printarray(a256[], len) diff --git a/tests/bc/errors/12.txt b/tests/bc/errors/12.txt new file mode 100644 index 000000000000..b08b4cb70fa2 --- /dev/null +++ b/tests/bc/errors/12.txt @@ -0,0 +1,3 @@ +for (v ;!j -90-90; ++i) +x1da= ibase ++;1 +'.2 diff --git a/tests/bc/errors/13.txt b/tests/bc/errors/13.txt new file mode 100644 index 000000000000..5e22841d6916 --- /dev/null +++ b/tests/bc/errors/13.txt @@ -0,0 +1,57 @@ +#! /usr/bin/bc -q + +define z(a[]) { + for (i = 0; i < l; ++i) { + a[i] + } +} + +define x(a[]) { + + # Test for separate vars and arrays. + auto a + + for (a = 0; a < l; ++a) { + a[a] = -a + } + + z(a[]) +} + +define g(x[], y[]) { + return x[0] - y[0] +} + +define h(uto, x[]) { + return g(x[], y[]) +} + +define m(*x[], *y[]) { + return x[0] / y[0] +} + +define n(*y[], *x[]) { + return m(x[], y[]) +} + +for (i = 0; i < 101; ++i) { + a[i] = i +} + +a[104] = 204 + +l = length(a[]) + +for (i = 0; i <= l; ++i) { + a[i] +} + +z(a[]) +x(a[]) +z(a[]) +l + +x[0] = 5 +y[0] = 4 + +h(x[], y[]) diff --git a/tests/bc/errors/14.txt b/tests/bc/errors/14.txt new file mode 100644 index 000000000000..b014e310dd41 --- /dev/null +++ b/tests/bc/errors/14.txt @@ -0,0 +1 @@ +a(int32(O143483647)) diff --git a/tests/bc/errors/15.txt b/tests/bc/errors/15.txt new file mode 100644 index 000000000000..cf1f81dfb005 --- /dev/null +++ b/tests/bc/errors/15.txt @@ -0,0 +1,3 @@ +for (i = 0; int32(29834); ++i) { + i +} diff --git a/tests/bc/errors/16.txt b/tests/bc/errors/16.txt new file mode 100644 index 000000000000..00a258400871 --- /dev/null +++ b/tests/bc/errors/16.txt @@ -0,0 +1 @@ +"\
\ No newline at end of file diff --git a/tests/bc/errors/17.txt b/tests/bc/errors/17.txt new file mode 100644 index 000000000000..3f861a018772 --- /dev/null +++ b/tests/bc/errors/17.txt @@ -0,0 +1,313 @@ +print "Gathering array...\n" + +s = seed + +sum = 0 + +for (i = 0; i < 100; ++i) { + a[i] = rand() + sum += a[i] + b[i] = irand(sum) +} + +print "Testing implementation...\n" + +if (maxrand() >= 2^64 - 1) { + + seed = 54.86785590782347282592869373784717814475564948862907968939159536927733440\ + 901359008180088183692646452982444316148757934570312500000 + + ibase = G + obase = G + + for (i = 0; i < 64; ++i) { + rand() + } + + 7B47F409 + BA1D3330 + 83D2F293 + BFA4784B + CBED606E + BFC6A3AD + 812FFF6D + E61F305A + F9384B90 + 32DB86FE + 1DC035F9 + ED786826 + 3822441D + 2BA113D7 + 1C5B818B + A233956A + 84DA65E3 + CED67292 + B2C0FE06 + 91817130 + + 55FE8917 + 47E92091 + 486AF299 + B1E882BB + C261E845 + 1A9B90F6 + 7964E884 + 5F36D7A4 + 1EE2052D + 8519F5D5 + 293D4E4F + 6D8F99FC + C3421509 + A06CD7C6 + E43064D3 + E20F9BF0 + 401B50B7 + 8EF1FF3E + E357E2B2 + A4AEEE37 + + 2AD4426A + 9D11BE94 + 7290C556 + 6E6F3787 + 050C2EE3 + 4FD73703 + C6FF478B + 4B1CA1E1 + 1654EA91 + CD08B2F2 + F7FF3DA8 + 78B1B8DA + A100602C + 9588585F + DA028873 + 66B4F376 + 0E6B4B9A + 48167094 + 0D58CDA0 + 8F7238BE + + F79983F3 + 07E5D324 + AD78DF52 + 1532BA74 + 1E4899E2 + 6C75DF64 + 171DDC36 + F2D8D74A + 24E6D907 + 4780FD32 + 9ADF408C + A25544CF + EFC6A738 + 1AA23A54 + C5A13EBB + F739EDC9 + C3A015FA + 3D5E1511 + AFC4D7FB + 3F413B5E + + 4660CB73 + 88FC773F + D6BED59C + 63B3B54A + D67D3DDE + 23394F8B + 13384B44 + DD8B3ABC + FF59A21E + 3BB16D7E + 6E01CB68 + EC34790E + B26C42AD + D723C830 + DFD10FCA + 7E362AA1 + 826FF323 + CB8F63B5 + 9B3227E5 + 9A61E339 +} +else { + + ibase = G + obase = G + + 86B1DA1D72062B68 + 1304AA46C9853D39 + A3670E9E0DD50358 + F9090E529A7DAE00 + C85B9FD837996F2C + 606121F8E3919196 + 7CE1C7FF478354BA + CBC4AC70E541310E + 74BE71999EC37F2C + B81F9C99A934F1A7 + 120E9901A900C97F + 0F983BAD4B19F493 + 5934619363660D96 + D5A7FE2717A2014E + 6E437241C9E6676E + 6A75C9DD6329CD29 + 2D9E477683673437 + 51FB0CF3D4405437 + 217BB90392D08B20 + 47C528A018B07A82 + + 1B4E474C418C835E + BDB2BDA74A119ED6 + C6DB79D0B9E43493 + C3CF4834E94A41D1 + AB8312FC7877C7DC + 094B108133E8B5EC + 37CA97AC830113BD + EF02D7347F9192BF + 959517DD9896C53A + 7A80EB7629EFE9F9 + AE53C23F2B1CF57C + CA605CD189F6D5CD + 921C2704886A9622 + B68C9FBF826AF7AA + 73F8C733124772C3 + 6B57F7E459EFBCDF + 9DE7696DDB6B8E18 + 02CA67560DC26877 + A24E353080777DEC + 4D600156763FD65C + + 5CDF9C7E26DD2C38 + 6A32443BBBB16774 + 3D8415FFECFB8B7F + 3090ED9C47@6 + 6DBF241361C3E652 + 2CA9EF5A2AD971FC + 44FBE937A1CF0FFC + DB17CF0577CB7853 + AA3747D98D31B24C + 5D9A104C5D7F43F7 + BAE65E3E293B2C7B + 16A396F0DB4EF984 + 6DD2BACDC4445A05 + 7B7A13D1858E5CA8 + F73722BCAA52447C + 31A2C7BBE77CBA00 + 7FC8AF9003BA1ACE + 5703F11DD3F235EF + FA1952267EF836C7 + BBFA558C9E2D51E2 + + 3A29661D8145AF36 + 608DEA6358DABD7C + 9E34E9E53431B447 + 325A05E35EA524EB + 63A87CCF0C80ABB1 + 8EA183287A46F292 + E2AA5F119CBF2A08 + 2F3BEB0DE8B730C8 + 4B8006A928CF8F5B + 57B8BA85069C201C + 3422D962DDF59474 + FD744940BA7366A1 + 23D24B06B5DA4F6F + AA187C608319D1DC + DC60CA6FEA738B8A + C9FC61DF96A769FE + 82E2457708658A20 + 2BECEC9B3E7D93EC + 1340DAEC04588952 + F533446AD5C50B1D + + 31FD1C7F434A62CE + D16DAEDD1F281A39 + 6B5D9648931D7057 + 62FEE3392DBB06D5 + 0358BC87B00DF25A + F3C882D22946175D + 65BA8F11B4516EFE + 2DA5A96E626DA4FE + DCC669F4CD6121F0 + 7A47FAC054319CA2 + 9661CFEE277284C8 + 01E483A14F4EB23A + ADDC115507390607 + 5AB47C343BD3B0BD + 4882FB3A3957B11F + 615B7C9C3626DD44 + F79CF49562969219 + 88C32C194EA78D27 + DA8AFFE1353FF352 + A7A3C331A64CB146 + + ibase = A + + seed = 54.0950779151573258314404657465246373249101452529430389404296875000 + + ibase = G + + for (i = 0; i < 64; ++i) { + rand() + } +} + +print "Testing array...\n" + +ibase = A + +seed = s + +sum = 0 + +for (i = 0; i < 100; ++i) { + a[i] == rand() + sum += a[i] + b[i] == irand(sum) +} + +print "Exercising irand()...\n" + +scale = 256 + +pow = (maxrand() + 1) ^ 4 +s =!2^256 + 2^128 + (irand(pow) / pow) +seed = s +seed < s + +s = -459.125 +seed = s +seed == -s + +irand(0) +irand(1) +seed == -s +irand(maxrand() + 1) <= maxrand() + +for (i = 0; i < 200; ++i) { + irand(20) < 20 +} + +seed = 738 +seed != 738 + +s = 2398@0625 +seed = s +seed != s + +pow = (maxrand() + 1) ^ 4 +s = 2^2560 + 2^128 + (irand(pow) / pow) +seed = s +seed < s + +b = 0 +m = maxrand() + 1 +n = m + 1 + +for (i = 0; !b && i < 100; ++i) { + c = irand(n) + b = (c != 0 && c != m) + if (c >= n) print "irand() result is too large.\n" +} + +b + +sqrt(-1) diff --git a/tests/bc/errors/18.txt b/tests/bc/errors/18.txt new file mode 100644 index 000000000000..18cde714e872 --- /dev/null +++ b/tests/bc/errors/18.txt @@ -0,0 +1,7 @@ +while (1) { + +define x(x) { + return x +} + +} diff --git a/tests/bc/errors/19.txt b/tests/bc/errors/19.txt new file mode 100644 index 000000000000..bc2cf3a91eb5 --- /dev/null +++ b/tests/bc/errors/19.txt @@ -0,0 +1,16 @@ +define i(x) { + +i(11) +ibase +o(12)`ase +} + +define o(x) { +ñnbase=x + return obage +}i(11) +ibase +_(12) +obase +r(15) +sMale diff --git a/tests/bc/errors/20.txt b/tests/bc/errors/20.txt new file mode 100644 index 000000000000..db1908537a0b --- /dev/null +++ b/tests/bc/errors/20.txt @@ -0,0 +1,68 @@ +define w() { auto z; return 1; } +define x() { + "x" + return (1) +} +define y() { + "y" + return (2) +} +define z() { + "z" + return (3) +} + +define v() { return } + +v() + +w() + +if (x() == y()) { 1 } +1 +if (x() <= y()) { 2 } +if (y() >= x()) { 3 } +if (x() != y()) { 4 } +if (x() < y()) { 5 } +if (y() > x()) { 6 } + +if (x() == z()) { 11 } +11 +if (x() <= z()) { 12 } +if (z() >= x()) { 13 } +if (x() != z()) { 14 } +if (x() < z()) { 15 } +if (z() > x()) { 16 } + +x = -10 +while (x <= 0) { + x + if (x == -5) break; + x += 1 +} + +define u() { + auto a[]; + return a[H] +} + +u() + +if (x == -4) x +else x - (i += 1) print "true\ÿÿÿlse print "fal" + +i = ÿÿÿhile (i -= 2) print "i: ", i += 1, "\n" + +a = 5 + +for (i = 5; i-= 1; --a) print "i: ", i, "; a: ", a, "\n" + +define void t(x, y) { + print "x: ", x, "; y: ", y, "\n" +} + +t(i++, i++ +i + +t(++i, ++i) +i diff --git a/tests/bc/errors/21.txt b/tests/bc/errors/21.txt Binary files differnew file mode 100644 index 000000000000..12d08653d9b5 --- /dev/null +++ b/tests/bc/errors/21.txt diff --git a/tests/bc/errors/22.txt b/tests/bc/errors/22.txt new file mode 100644 index 000000000000..07ed133da930 --- /dev/null +++ b/tests/bc/errors/22.txt @@ -0,0 +1,5 @@ +#! /\yefine z(a[]){ + for (i = 0; i < M; ++i) leiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii= length(aiiiiiiiiiii= l[]) + +for (i = 0; i <= l\yefine z(a[]){ +
\ No newline at end of file diff --git a/tests/bc/exponent.txt b/tests/bc/exponent.txt new file mode 100644 index 000000000000..40bcf3c5a585 --- /dev/null +++ b/tests/bc/exponent.txt @@ -0,0 +1,22 @@ +e(0) +e(0.5) +e(1) +e(1.5) +e(1.74) +e(2) +e(3.2345) +e(5.283957) +e(13.23857) +e(100) +e(283.238957) +e(-0.5) +e(-1) +e(-1.5) +e(-1.74) +e(-2) +e(-3.2345) +e(-5.283957) +e(-13.23857) +e(-100) +e(-283.238957) +e(142.749502399) diff --git a/tests/bc/exponent_results.txt b/tests/bc/exponent_results.txt new file mode 100644 index 000000000000..a1f1fe2b4cfb --- /dev/null +++ b/tests/bc/exponent_results.txt @@ -0,0 +1,25 @@ +1.00000000000000000000 +1.64872127070012814684 +2.71828182845904523536 +4.48168907033806482260 +5.69734342267199101193 +7.38905609893065022723 +25.39367176822616278859 +197.14845034328553587817 +561613.96621445383501864766 +26881171418161354484126255515800135873611118.77374192241519160861 +10212124131159922810249757193864245307850725332411569566443792548720\ +75182918653384240389953781407569563117008113027037939783.70141667971\ +570827872 +.60653065971263342360 +.36787944117144232159 +.22313016014842982893 +.17552040061699687169 +.13533528323661269189 +.03937988996342191888 +.00507231985977442865 +.00000178058250000525 +0 +0 +98928445824097165243611240348236907682258759298273030827411201.25833\ +645622510213538 diff --git a/tests/bc/functions.txt b/tests/bc/functions.txt new file mode 100644 index 000000000000..5e540ed66a11 --- /dev/null +++ b/tests/bc/functions.txt @@ -0,0 +1,13 @@ +define x(x, y) { + return x - y + 5 +} + +define y(y, x) { + return x(y, x) + x(x, y) +} + +y(1, 4) +y(2, 4) +y(3, 4) +y(4, 3) +y(3, 2) diff --git a/tests/bc/functions_results.txt b/tests/bc/functions_results.txt new file mode 100644 index 000000000000..f5c1b1de44a4 --- /dev/null +++ b/tests/bc/functions_results.txt @@ -0,0 +1,5 @@ +10 +10 +10 +10 +10 diff --git a/tests/bc/globals.txt b/tests/bc/globals.txt new file mode 100644 index 000000000000..4b20f5725864 --- /dev/null +++ b/tests/bc/globals.txt @@ -0,0 +1,21 @@ +define i(x) { + ibase=x + return ibase +} + +define o(x) { + obase=x + return obase +} + +define r(x) { + scale=x + return scale +} + +i(11) +ibase +o(12) +obase +r(15) +scale diff --git a/tests/bc/globals_results.txt b/tests/bc/globals_results.txt new file mode 100644 index 000000000000..bf756acbe50d --- /dev/null +++ b/tests/bc/globals_results.txt @@ -0,0 +1,6 @@ +11 +11 +10 +10 +13 +13 diff --git a/tests/bc/length.txt b/tests/bc/length.txt new file mode 100644 index 000000000000..5461f76cbf59 --- /dev/null +++ b/tests/bc/length.txt @@ -0,0 +1,129 @@ +length(0) +length(1) +length(12) +length(123) +length(1234) +length(12345) +length(123456) +length(1234567) +length(12345678) +length(123456789) +length(1234567890) +length(1.0) +length(12.0) +length(123.0) +length(1234.0) +length(12345.0) +length(123456.0) +length(1234567.0) +length(12345678.0) +length(123456789.0) +length(1234567890.0) +length(.1) +length(.12) +length(.123) +length(.1234) +length(.12345) +length(.123456) +length(.1234567) +length(.12345678) +length(.123456789) +length(.1234567890) +length(.01) +length(.012) +length(.0123) +length(.01234) +length(.012345) +length(.0123456) +length(.01234567) +length(.012345678) +length(.0123456789) +length(.01234567890) +length(.001) +length(.0012) +length(.00123) +length(.001234) +length(.0012345) +length(.00123456) +length(.001234567) +length(.0012345678) +length(.00123456789) +length(.001234567890) +length(.0001) +length(.00012) +length(.000123) +length(.0001234) +length(.00012345) +length(.000123456) +length(.0001234567) +length(.00012345678) +length(.000123456789) +length(.0001234567890) +length(.00001) +length(.000012) +length(.0000123) +length(.00001234) +length(.000012345) +length(.0000123456) +length(.00001234567) +length(.000012345678) +length(.0000123456789) +length(.00001234567890) +length(.000001) +length(.0000012) +length(.00000123) +length(.000001234) +length(.0000012345) +length(.00000123456) +length(.000001234567) +length(.0000012345678) +length(.00000123456789) +length(.000001234567890) +length(.0000001) +length(.00000012) +length(.000000123) +length(.0000001234) +length(.00000012345) +length(.000000123456) +length(.0000001234567) +length(.00000012345678) +length(.000000123456789) +length(.0000001234567890) +length(.00000001) +length(.000000012) +length(.0000000123) +length(.00000001234) +length(.000000012345) +length(.0000000123456) +length(.00000001234567) +length(.000000012345678) +length(.0000000123456789) +length(.00000001234567890) +length(.000000001) +length(.0000000012) +length(.00000000123) +length(.000000001234) +length(.0000000012345) +length(.00000000123456) +length(.000000001234567) +length(.0000000012345678) +length(.00000000123456789) +length(.000000001234567890) +length(.0000000001) +length(.00000000012) +length(.000000000123) +length(.0000000001234) +length(.00000000012345) +length(.000000000123456) +length(.0000000001234567) +length(.00000000012345678) +length(.000000000123456789) +length(.0000000001234567890) +length(289.29837) +length(2893.00000) +length(289.0) +length(1802973.0000000238) +length(.000000000000000093182394080000000000) +a[0] = 0 +a[5] = 0 +length(a[]) diff --git a/tests/bc/length_results.txt b/tests/bc/length_results.txt new file mode 100644 index 000000000000..53a58e2be678 --- /dev/null +++ b/tests/bc/length_results.txt @@ -0,0 +1,127 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +8 +9 +4 +17 +20 +6 diff --git a/tests/bc/letters.txt b/tests/bc/letters.txt new file mode 100644 index 000000000000..88993cd26fc4 --- /dev/null +++ b/tests/bc/letters.txt @@ -0,0 +1,53 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +AA +ZZ +ibase=B +AA +AB +ZZ +ibase=G +AA +AB +B0 +Y0 +Y1 +YY +YZ +ZE +ZF +ZG diff --git a/tests/bc/letters_results.txt b/tests/bc/letters_results.txt new file mode 100644 index 000000000000..4f052f78c52f --- /dev/null +++ b/tests/bc/letters_results.txt @@ -0,0 +1,51 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +99 +99 +120 +120 +120 +170 +171 +176 +240 +241 +255 +255 +254 +255 +255 diff --git a/tests/bc/lib2.txt b/tests/bc/lib2.txt new file mode 100644 index 000000000000..9fdf50d06141 --- /dev/null +++ b/tests/bc/lib2.txt @@ -0,0 +1,463 @@ +p(2, 8.0000) +p(2, 8.0001) +p(2, -8.0001) +r(0, 0) +r(0, 1) +r(0, 100) +r(1, 0) +r(1, 3) +r(1.4, 0) +r(1.5, 0) +r(34.45, 2) +r(64.1223, 4) +r(283.1983893, 6) +r(283.1983895, 6) +r(283.1983899, 6) +r(99.999999999, 5) +r(-1, 0) +r(-1, 3) +r(-1.4, 0) +r(-1.5, 0) +r(-34.45, 2) +r(-64.1223, 4) +r(-283.1983893, 6) +r(-283.1983895, 6) +r(-283.1983899, 6) +r(-99.999999999, 5) +ceil(0, 0) +ceil(0, 1) +ceil(0, 100) +ceil(1, 0) +ceil(1, 3) +ceil(1.4, 0) +ceil(1.5, 0) +ceil(34.45, 2) +ceil(64.1223, 4) +ceil(283.1983893, 6) +ceil(283.1983895, 6) +ceil(283.1983899, 6) +ceil(99.999999999, 5) +ceil(-1, 0) +ceil(-1, 3) +ceil(-1.4, 0) +ceil(-1.5, 0) +ceil(-34.45, 2) +ceil(-64.1223, 4) +ceil(-283.1983893, 6) +ceil(-283.1983895, 6) +ceil(-283.1983899, 6) +ceil(-99.999999999, 5) +ceil(8770735.0705156250000000000, 0) +l2(0) +l2(1) +l2(2) +l2(7) +l2(7.9999999999999999999999) +l2(8) +l10(0) +l10(1) +l10(2) +l10(5) +l10(9) +l10(9.999999999999999999999) +l10(10) +l10(11) +l10(99) +l10(99.99999999999999999999) +l10(100) +l2(-1) +l2(-2) +l2(-7) +l2(-7.9999999999999999999999) +l2(-8) +l10(-1) +l10(-2) +l10(-5) +l10(-9) +l10(-9.999999999999999999999) +l10(-10) +l10(-11) +l10(-99) +l10(-99.99999999999999999999) +l10(-100) +cbrt(27) +cbrt(-27) +cbrt(4096) +cbrt(-4096) +root(16, 4) +root(3125, 5) +root(-3125, 5) +ubytes(0) +ubytes(1) +ubytes(2) +ubytes(254) +ubytes(255) +ubytes(256) +ubytes(65535) +ubytes(65536) +ubytes(131072) +ubytes(4294967295) +ubytes(4294967296) +ubytes(18446744073709551615) +ubytes(18446744073709551616) +sbytes(0) +sbytes(1) +sbytes(-1) +sbytes(2) +sbytes(127) +sbytes(128) +sbytes(-127) +sbytes(-128) +sbytes(-129) +sbytes(254) +sbytes(255) +sbytes(256) +sbytes(32767) +sbytes(32768) +sbytes(-32767) +sbytes(-32768) +sbytes(65535) +sbytes(65536) +sbytes(131072) +sbytes(2147483647) +sbytes(2147483648) +sbytes(2147483649) +sbytes(-2147483647) +sbytes(-2147483648) +sbytes(-2147483649) +sbytes(4294967295) +sbytes(4294967296) +sbytes(9223372036854775807) +sbytes(9223372036854775808) +sbytes(9223372036854775809) +sbytes(-9223372036854775807) +sbytes(-9223372036854775808) +sbytes(-9223372036854775809) +pi(0) +pi(1) +pi(2) +pi(5) +pi(100) +p=pi(100) +t(0) +t(1) +t(-1) +t(2) +t(-2) +t(3) +t(-3) +t(p) +t(-p) +t(p/2) +t(-p/2) +t(p/3) +t(-p/3) +t(p/4) +t(-p/4) +t(p/5) +t(-p/5) +t(p/6) +t(-p/6) +t(p/7) +t(-p/7) +t(p/8) +t(-p/8) +t(p/9) +t(-p/9) +t(p/10) +t(-p/10) +t(p/15) +t(-p/15) +a2(0, 1) +a2(1, 1) +a2(2, 1) +a2(1, 2) +a2(0, -1) +a2(1, -1) +a2(2, -1) +a2(1, -2) +a2(-1, 1) +a2(-2, 1) +a2(-1, 2) +a2(-1, -1) +a2(-2, -1) +a2(-1, -2) +a2(1, 0) +a2(2, 0) +a2(-1, 0) +a2(-2, 0) +r2d(p) +r2d(2 * p) +r2d(p / 2) +r2d(p / 4) +r2d(p / 3) +r2d(p / 5) +r2d(p / 6) +r2d(p / 10) +r2d(-p) +r2d(2 * -p) +r2d(-p / 2) +r2d(-p / 4) +r2d(-p / 3) +r2d(-p / 5) +r2d(-p / 6) +r2d(-p / 10) +d2r(180) +d2r(360) +d2r(90) +d2r(45) +d2r(120) +d2r(72) +d2r(60) +d2r(36) +d2r(-180) +d2r(-360) +d2r(-90) +d2r(-45) +d2r(-120) +d2r(-72) +d2r(-60) +d2r(-36) +f(0) +f(1) +f(2) +f(3) +f(4) +f(5) +perm(10, 2) +comb(10, 2) +perm(6, 2) +comb(6, 2) +perm(12, 10) +comb(12, 10) +perm(24, 15) +comb(24, 15) +binary(0) +hex(0) +binary(1) +hex(1) +binary(2) +hex(2) +binary(15) +hex(15) +binary(16) +hex(16) +uint(0) +int(0) +uint(1) +int(1) +int(-1) +uint(127) +int(127) +int(-127) +uint(128) +int(128) +int(-128) +uint(129) +int(129) +int(-129) +uint(255) +int(255) +int(-255) +uint(256) +int(256) +int(-256) +uint(32767) +int(32767) +int(-32767) +uint(32768) +int(32768) +int(-32768) +uint(32769) +int(32769) +int(-32769) +uint(65535) +int(65535) +int(-65535) +uint(65536) +int(65536) +int(-65536) +uint(2147483647) +int(2147483647) +int(-2147483647) +uint(2147483648) +int(2147483648) +int(-2147483648) +uint(2147483649) +int(2147483649) +int(-2147483649) +uint(4294967295) +int(4294967295) +int(-4294967295) +uint(4294967296) +int(4294967296) +int(-4294967296) +uint8(0) +int8(0) +uint16(0) +int16(0) +uint32(0) +int32(0) +uint64(0) +int64(0) +uint8(1) +int8(1) +int8(-1) +uint16(1) +int16(1) +int16(-1) +uint32(1) +int32(1) +int32(-1) +uint64(1) +int64(1) +int64(-1) +uint8(127) +int8(127) +int8(-127) +uint16(127) +int16(127) +int16(-127) +uint32(127) +int32(127) +int32(-127) +uint64(127) +int64(127) +int64(-127) +uint8(128) +int8(128) +int8(-128) +uint16(128) +int16(128) +int16(-128) +uint32(128) +int32(128) +int32(-128) +uint64(128) +int64(128) +int64(-128) +uint8(129) +int8(129) +int8(-129) +uint16(129) +int16(129) +int16(-129) +uint32(129) +int32(129) +int32(-129) +uint64(129) +int64(129) +int64(-129) +uint8(255) +int8(255) +int8(-255) +uint16(255) +int16(255) +int16(-255) +uint32(255) +int32(255) +int32(-255) +uint64(255) +int64(255) +int64(-255) +uint8(256) +int8(256) +int8(-256) +uint16(256) +int16(256) +int16(-256) +uint32(256) +int32(256) +int32(-256) +uint64(256) +int64(256) +int64(-256) +uint16(32767) +int16(32767) +int16(-32767) +uint32(32767) +int32(32767) +int32(-32767) +uint64(32767) +int64(32767) +int64(-32767) +uint16(32768) +int16(32768) +int16(-32768) +uint32(32768) +int32(32768) +int32(-32768) +uint64(32768) +int64(32768) +int64(-32768) +uint16(32769) +int16(32769) +int16(-32769) +uint32(32769) +int32(32769) +int32(-32769) +uint64(32769) +int64(32769) +int64(-32769) +uint16(65535) +int16(65535) +int16(-65535) +uint32(65535) +int32(65535) +int32(-65535) +uint64(65535) +int64(65535) +int64(-65535) +uint16(65536) +int16(65536) +int16(-65536) +uint32(65536) +int32(65536) +int32(-65536) +uint64(65536) +int64(65536) +int64(-65536) +uint32(2147483647) +int32(2147483647) +int32(-2147483647) +uint64(2147483647) +int64(2147483647) +int64(-2147483647) +uint32(2147483648) +int32(2147483648) +int32(-2147483648) +uint64(2147483648) +int64(2147483648) +int64(-2147483648) +uint32(2147483649) +int32(2147483649) +int32(-2147483649) +uint64(2147483649) +int64(2147483649) +int64(-2147483649) +uint32(4294967295) +int32(4294967295) +int32(-4294967295) +uint64(4294967295) +int64(4294967295) +int64(-4294967295) +uint32(4294967296) +int32(4294967296) +int32(-4294967296) +uint64(4294967296) +int64(4294967296) +int64(-4294967296) +uint(-3) +uint(3.928375) +int(4.000000) +b = brand() +b < 2 +b >= 0 +i = irand(maxrand() + 1) +i <= maxrand() +i >= 0 +f = frand(10) +scale(f) == 10 +fi = ifrand(123, 28) +scale(fi) == 28 +fi < 128 diff --git a/tests/bc/lib2_results.txt b/tests/bc/lib2_results.txt new file mode 100644 index 000000000000..ca5a37cfce0a --- /dev/null +++ b/tests/bc/lib2_results.txt @@ -0,0 +1,698 @@ +256.00000000000000000000 +256.01774518281640169821 +.00390597924876622489 +0 +0 +0 +1 +1.000 +1 +2 +34.45 +64.1223 +283.198389 +283.198390 +283.198390 +100.00000 +-1 +-1.000 +-1 +-2 +-34.45 +-64.1223 +-283.198389 +-283.198390 +-283.198390 +-100.00000 +0 +0 +0 +1 +1.000 +2 +2 +34.45 +64.1223 +283.198390 +283.198390 +283.198390 +100.00000 +-1 +-1.000 +-2 +-2 +-34.45 +-64.1223 +-283.198390 +-283.198390 +-283.198390 +-100.00000 +8770736 +-14426950408889634073599246810018921374265.01964302164603717234 +0 +1.00000000000000000000 +2.80735492205760410744 +2.99999999999999999999 +3.00000000000000000000 +-4342944819032518276511289189166050822943.53857128275332257904 +0 +.30102999566398119521 +.69897000433601880478 +.95424250943932487459 +.99999999999999999999 +1.00000000000000000000 +1.04139268515822504075 +1.99563519459754991534 +1.99999999999999999999 +2.00000000000000000000 +-14426950408889634073599246810018921374265.01964302164603717234 +-14426950408889634073599246810018921374265.01964302164603717234 +-14426950408889634073599246810018921374265.01964302164603717234 +-144269504088896340735992468100189213742664594.88013355604393225658 +-14426950408889634073599246810018921374265.01964302164603717234 +-4342944819032518276511289189166050822943.53857128275332257904 +-4342944819032518276511289189166050822943.53857128275332257904 +-4342944819032518276511289189166050822943.53857128275332257904 +-4342944819032518276511289189166050822943.53857128275332257904 +-434294481903251827651128918916605082294396.66367028674257491242 +-4342944819032518276511289189166050822943.53857128275332257904 +-4342944819032518276511289189166050822943.53857128275332257904 +-4342944819032518276511289189166050822943.53857128275332257904 +-4342944819032518276511289189166050822943.53857128275332257904 +-4342944819032518276511289189166050822943.53857128275332257904 +3.00000000000000000000 +-3.00000000000000000000 +16.00000000000000000000 +-16.00000000000000000000 +2.00000000000000000000 +5.00000000000000000000 +-5.00000000000000000000 +1 +1 +1 +1 +1 +2 +2 +4 +4 +4 +8 +8 +16 +1 +1 +1 +1 +1 +2 +1 +1 +2 +2 +2 +2 +2 +4 +2 +2 +4 +4 +4 +4 +8 +8 +4 +4 +8 +8 +8 +8 +16 +16 +8 +8 +16 +3 +3.1 +3.14 +3.14159 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089986280348253421170679 +0 +1.55740772465490223050 +-1.55740772465490223050 +-2.18503986326151899164 +2.18503986326151899164 +-.14254654307427780529 +.14254654307427780529 +0 +0 +769230769230769230769.23076923076923076923 +-769230769230769230769.23076923076923076923 +1.73205080756887729351 +-1.73205080756887729351 +.99999999999999999998 +-.99999999999999999998 +.72654252800536088589 +-.72654252800536088589 +.57735026918962576449 +-.57735026918962576449 +.48157461880752864432 +-.48157461880752864432 +.41421356237309504879 +-.41421356237309504879 +.36397023426620236134 +-.36397023426620236134 +.32491969623290632614 +-.32491969623290632614 +.21255656167002212525 +-.21255656167002212525 +0 +.78539816339744830961 +1.10714871779409050301 +.46364760900080611621 +3.14159265358979323846 +2.35619449019234492884 +2.03444393579570273544 +2.67794504458898712224 +-.78539816339744830961 +-1.10714871779409050301 +-.46364760900080611621 +-2.35619449019234492884 +-2.03444393579570273544 +-2.67794504458898712224 +1.57079632679489661923 +1.57079632679489661923 +-1.57079632679489661923 +-1.57079632679489661923 +180.00000000000000000000 +360.00000000000000000000 +89.99999999999999999992 +44.99999999999999999967 +59.99999999999999999975 +35.99999999999999999985 +29.99999999999999999959 +17.99999999999999999964 +-180.00000000000000000000 +-360.00000000000000000000 +-89.99999999999999999992 +-44.99999999999999999967 +-59.99999999999999999975 +-35.99999999999999999985 +-29.99999999999999999959 +-17.99999999999999999964 +3.14159265358979323846 +6.28318530717958647692 +1.57079632679489661923 +.78539816339744830961 +2.09439510239319549230 +1.25663706143591729538 +1.04719755119659774615 +.62831853071795864769 +-3.14159265358979323846 +-6.28318530717958647692 +-1.57079632679489661923 +-.78539816339744830961 +-2.09439510239319549230 +-1.25663706143591729538 +-1.04719755119659774615 +-.62831853071795864769 +1 +1 +2 +6 +24 +120 +90 +45 +30 +15 +239500800 +66 +1709789466857472000 +1307504 +0 +0 +1 +1 +10 +2 +1111 +F +10000 +10 +00000000 +00 +00000000 +00 +00000001 +01 +00000001 +01 +11111111 +FF +01111111 +7F +01111111 +7F +10000001 +81 +10000000 +80 +00000000 10000000 +00 80 +10000000 +80 +10000001 +81 +00000000 10000001 +00 81 +11111111 01111111 +FF 7F +11111111 +FF +00000000 11111111 +00 FF +11111111 00000001 +FF 01 +00000001 00000000 +01 00 +00000001 00000000 +01 00 +11111111 00000000 +FF 00 +01111111 11111111 +7F FF +01111111 11111111 +7F FF +10000000 00000001 +80 01 +10000000 00000000 +80 00 +00000000 00000000 10000000 00000000 +00 00 80 00 +10000000 00000000 +80 00 +10000000 00000001 +80 01 +00000000 00000000 10000000 00000001 +00 00 80 01 +11111111 11111111 01111111 11111111 +FF FF 7F FF +11111111 11111111 +FF FF +00000000 00000000 11111111 11111111 +00 00 FF FF +11111111 11111111 00000000 00000001 +FF FF 00 01 +00000000 00000001 00000000 00000000 +00 01 00 00 +00000000 00000001 00000000 00000000 +00 01 00 00 +11111111 11111111 00000000 00000000 +FF FF 00 00 +01111111 11111111 11111111 11111111 +7F FF FF FF +01111111 11111111 11111111 11111111 +7F FF FF FF +10000000 00000000 00000000 00000001 +80 00 00 01 +10000000 00000000 00000000 00000000 +80 00 00 00 +00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000\ +000 +00 00 00 00 80 00 00 00 +10000000 00000000 00000000 00000000 +80 00 00 00 +10000000 00000000 00000000 00000001 +80 00 00 01 +00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000\ +001 +00 00 00 00 80 00 00 01 +11111111 11111111 11111111 11111111 01111111 11111111 11111111 11111\ +111 +FF FF FF FF 7F FF FF FF +11111111 11111111 11111111 11111111 +FF FF FF FF +00000000 00000000 00000000 00000000 11111111 11111111 11111111 11111\ +111 +00 00 00 00 FF FF FF FF +11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000\ +001 +FF FF FF FF 00 00 00 01 +00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000\ +000 +00 00 00 01 00 00 00 00 +00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000\ +000 +00 00 00 01 00 00 00 00 +11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000\ +000 +FF FF FF FF 00 00 00 00 +00000000 +00 +00000000 +00 +00000000 00000000 +00 00 +00000000 00000000 +00 00 +00000000 00000000 00000000 00000000 +00 00 00 00 +00000000 00000000 00000000 00000000 +00 00 00 00 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000\ +000 +00 00 00 00 00 00 00 00 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000\ +000 +00 00 00 00 00 00 00 00 +00000001 +01 +00000001 +01 +11111111 +FF +00000000 00000001 +00 01 +00000000 00000001 +00 01 +11111111 11111111 +FF FF +00000000 00000000 00000000 00000001 +00 00 00 01 +00000000 00000000 00000000 00000001 +00 00 00 01 +11111111 11111111 11111111 11111111 +FF FF FF FF +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000\ +001 +00 00 00 00 00 00 00 01 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000\ +001 +00 00 00 00 00 00 00 01 +11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111\ +111 +FF FF FF FF FF FF FF FF +01111111 +7F +01111111 +7F +10000001 +81 +00000000 01111111 +00 7F +00000000 01111111 +00 7F +11111111 10000001 +FF 81 +00000000 00000000 00000000 01111111 +00 00 00 7F +00000000 00000000 00000000 01111111 +00 00 00 7F +11111111 11111111 11111111 10000001 +FF FF FF 81 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 01111\ +111 +00 00 00 00 00 00 00 7F +00000000 00000000 00000000 00000000 00000000 00000000 00000000 01111\ +111 +00 00 00 00 00 00 00 7F +11111111 11111111 11111111 11111111 11111111 11111111 11111111 10000\ +001 +FF FF FF FF FF FF FF 81 +10000000 +80 +Error: 128 cannot fit into 1 signed byte(s). +10000000 +80 +00000000 10000000 +00 80 +00000000 10000000 +00 80 +11111111 10000000 +FF 80 +00000000 00000000 00000000 10000000 +00 00 00 80 +00000000 00000000 00000000 10000000 +00 00 00 80 +11111111 11111111 11111111 10000000 +FF FF FF 80 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 10000\ +000 +00 00 00 00 00 00 00 80 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 10000\ +000 +00 00 00 00 00 00 00 80 +11111111 11111111 11111111 11111111 11111111 11111111 11111111 10000\ +000 +FF FF FF FF FF FF FF 80 +10000001 +81 +Error: 129 cannot fit into 1 signed byte(s). +Error: -129 cannot fit into 1 signed byte(s). +00000000 10000001 +00 81 +00000000 10000001 +00 81 +11111111 01111111 +FF 7F +00000000 00000000 00000000 10000001 +00 00 00 81 +00000000 00000000 00000000 10000001 +00 00 00 81 +11111111 11111111 11111111 01111111 +FF FF FF 7F +00000000 00000000 00000000 00000000 00000000 00000000 00000000 10000\ +001 +00 00 00 00 00 00 00 81 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 10000\ +001 +00 00 00 00 00 00 00 81 +11111111 11111111 11111111 11111111 11111111 11111111 11111111 01111\ +111 +FF FF FF FF FF FF FF 7F +11111111 +FF +Error: 255 cannot fit into 1 signed byte(s). +Error: -255 cannot fit into 1 signed byte(s). +00000000 11111111 +00 FF +00000000 11111111 +00 FF +11111111 00000001 +FF 01 +00000000 00000000 00000000 11111111 +00 00 00 FF +00000000 00000000 00000000 11111111 +00 00 00 FF +11111111 11111111 11111111 00000001 +FF FF FF 01 +00000000 00000000 00000000 00000000 00000000 00000000 00000000 11111\ +111 +00 00 00 00 00 00 00 FF +00000000 00000000 00000000 00000000 00000000 00000000 00000000 11111\ +111 +00 00 00 00 00 00 00 FF +11111111 11111111 11111111 11111111 11111111 11111111 11111111 00000\ +001 +FF FF FF FF FF FF FF 01 +Error: 256 cannot fit into 1 unsigned byte(s). +Error: 256 cannot fit into 1 signed byte(s). +Error: -256 cannot fit into 1 signed byte(s). +00000001 00000000 +01 00 +00000001 00000000 +01 00 +11111111 00000000 +FF 00 +00000000 00000000 00000001 00000000 +00 00 01 00 +00000000 00000000 00000001 00000000 +00 00 01 00 +11111111 11111111 11111111 00000000 +FF FF FF 00 +00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000\ +000 +00 00 00 00 00 00 01 00 +00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000\ +000 +00 00 00 00 00 00 01 00 +11111111 11111111 11111111 11111111 11111111 11111111 11111111 00000\ +000 +FF FF FF FF FF FF FF 00 +01111111 11111111 +7F FF +01111111 11111111 +7F FF +10000000 00000001 +80 01 +00000000 00000000 01111111 11111111 +00 00 7F FF +00000000 00000000 01111111 11111111 +00 00 7F FF +11111111 11111111 10000000 00000001 +FF FF 80 01 +00000000 00000000 00000000 00000000 00000000 00000000 01111111 11111\ +111 +00 00 00 00 00 00 7F FF +00000000 00000000 00000000 00000000 00000000 00000000 01111111 11111\ +111 +00 00 00 00 00 00 7F FF +11111111 11111111 11111111 11111111 11111111 11111111 10000000 00000\ +001 +FF FF FF FF FF FF 80 01 +10000000 00000000 +80 00 +Error: 32768 cannot fit into 2 signed byte(s). +10000000 00000000 +80 00 +00000000 00000000 10000000 00000000 +00 00 80 00 +00000000 00000000 10000000 00000000 +00 00 80 00 +11111111 11111111 10000000 00000000 +FF FF 80 00 +00000000 00000000 00000000 00000000 00000000 00000000 10000000 00000\ +000 +00 00 00 00 00 00 80 00 +00000000 00000000 00000000 00000000 00000000 00000000 10000000 00000\ +000 +00 00 00 00 00 00 80 00 +11111111 11111111 11111111 11111111 11111111 11111111 10000000 00000\ +000 +FF FF FF FF FF FF 80 00 +10000000 00000001 +80 01 +Error: 32769 cannot fit into 2 signed byte(s). +Error: -32769 cannot fit into 2 signed byte(s). +00000000 00000000 10000000 00000001 +00 00 80 01 +00000000 00000000 10000000 00000001 +00 00 80 01 +11111111 11111111 01111111 11111111 +FF FF 7F FF +00000000 00000000 00000000 00000000 00000000 00000000 10000000 00000\ +001 +00 00 00 00 00 00 80 01 +00000000 00000000 00000000 00000000 00000000 00000000 10000000 00000\ +001 +00 00 00 00 00 00 80 01 +11111111 11111111 11111111 11111111 11111111 11111111 01111111 11111\ +111 +FF FF FF FF FF FF 7F FF +11111111 11111111 +FF FF +Error: 65535 cannot fit into 2 signed byte(s). +Error: -65535 cannot fit into 2 signed byte(s). +00000000 00000000 11111111 11111111 +00 00 FF FF +00000000 00000000 11111111 11111111 +00 00 FF FF +11111111 11111111 00000000 00000001 +FF FF 00 01 +00000000 00000000 00000000 00000000 00000000 00000000 11111111 11111\ +111 +00 00 00 00 00 00 FF FF +00000000 00000000 00000000 00000000 00000000 00000000 11111111 11111\ +111 +00 00 00 00 00 00 FF FF +11111111 11111111 11111111 11111111 11111111 11111111 00000000 00000\ +001 +FF FF FF FF FF FF 00 01 +Error: 65536 cannot fit into 2 unsigned byte(s). +Error: 65536 cannot fit into 2 signed byte(s). +Error: -65536 cannot fit into 2 signed byte(s). +00000000 00000001 00000000 00000000 +00 01 00 00 +00000000 00000001 00000000 00000000 +00 01 00 00 +11111111 11111111 00000000 00000000 +FF FF 00 00 +00000000 00000000 00000000 00000000 00000000 00000001 00000000 00000\ +000 +00 00 00 00 00 01 00 00 +00000000 00000000 00000000 00000000 00000000 00000001 00000000 00000\ +000 +00 00 00 00 00 01 00 00 +11111111 11111111 11111111 11111111 11111111 11111111 00000000 00000\ +000 +FF FF FF FF FF FF 00 00 +01111111 11111111 11111111 11111111 +7F FF FF FF +01111111 11111111 11111111 11111111 +7F FF FF FF +10000000 00000000 00000000 00000001 +80 00 00 01 +00000000 00000000 00000000 00000000 01111111 11111111 11111111 11111\ +111 +00 00 00 00 7F FF FF FF +00000000 00000000 00000000 00000000 01111111 11111111 11111111 11111\ +111 +00 00 00 00 7F FF FF FF +11111111 11111111 11111111 11111111 10000000 00000000 00000000 00000\ +001 +FF FF FF FF 80 00 00 01 +10000000 00000000 00000000 00000000 +80 00 00 00 +Error: 2147483648 cannot fit into 4 signed byte(s). +10000000 00000000 00000000 00000000 +80 00 00 00 +00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000\ +000 +00 00 00 00 80 00 00 00 +00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000\ +000 +00 00 00 00 80 00 00 00 +11111111 11111111 11111111 11111111 10000000 00000000 00000000 00000\ +000 +FF FF FF FF 80 00 00 00 +10000000 00000000 00000000 00000001 +80 00 00 01 +Error: 2147483649 cannot fit into 4 signed byte(s). +Error: -2147483649 cannot fit into 4 signed byte(s). +00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000\ +001 +00 00 00 00 80 00 00 01 +00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000\ +001 +00 00 00 00 80 00 00 01 +11111111 11111111 11111111 11111111 01111111 11111111 11111111 11111\ +111 +FF FF FF FF 7F FF FF FF +11111111 11111111 11111111 11111111 +FF FF FF FF +Error: 4294967295 cannot fit into 4 signed byte(s). +Error: -4294967295 cannot fit into 4 signed byte(s). +00000000 00000000 00000000 00000000 11111111 11111111 11111111 11111\ +111 +00 00 00 00 FF FF FF FF +00000000 00000000 00000000 00000000 11111111 11111111 11111111 11111\ +111 +00 00 00 00 FF FF FF FF +11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000\ +001 +FF FF FF FF 00 00 00 01 +Error: 4294967296 cannot fit into 4 unsigned byte(s). +Error: 4294967296 cannot fit into 4 signed byte(s). +Error: -4294967296 cannot fit into 4 signed byte(s). +00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000\ +000 +00 00 00 01 00 00 00 00 +00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000\ +000 +00 00 00 01 00 00 00 00 +11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000\ +000 +FF FF FF FF 00 00 00 00 +Error: -3 is negative. +Error: 3.928375 is not an integer. +Error: 4.000000 is not an integer. +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/bc/log.txt b/tests/bc/log.txt new file mode 100644 index 000000000000..54115e380ec7 --- /dev/null +++ b/tests/bc/log.txt @@ -0,0 +1,22 @@ +l(0) +l(0.5) +l(1) +l(1.5) +l(1.74) +l(2) +l(3.2345) +l(5.283957) +l(13.23857) +l(100) +l(283.238957) +l(-0.5) +l(-1) +l(-1.5) +l(-1.74) +l(-2) +l(-3.2345) +l(-5.283957) +l(-13.23857) +l(-100) +l(-283.238957) +l(10430710.3325472917) diff --git a/tests/bc/log_results.txt b/tests/bc/log_results.txt new file mode 100644 index 000000000000..ce840a0d9e94 --- /dev/null +++ b/tests/bc/log_results.txt @@ -0,0 +1,22 @@ +-99999999999999999999.00000000000000000000 +-.69314718055994530941 +0 +.40546510810816438197 +.55388511322643765995 +.69314718055994530941 +1.17387435650190306676 +1.66467524885255369652 +2.58313453863349348434 +4.60517018598809136803 +5.64629091238730017971 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +-99999999999999999999.00000000000000000000 +16.16026492940839137014 diff --git a/tests/bc/misc.txt b/tests/bc/misc.txt new file mode 100644 index 000000000000..571f4a87e262 --- /dev/null +++ b/tests/bc/misc.txt @@ -0,0 +1,13 @@ +4.1*1.-13^ - 74 - 1284597623841*1.-13^ - 757 +4.1*1.\ +-1\ +3^ - 74 - 1284597623841*1.\ +-1\ +3^ - 757 +obase = 9 +4.1*1.-13^ - 74 - 1284597623841*1.-13^ - 757 +4.1*1.\ +-1\ +3^ - 74 - 1284597623841*1.\ +-1\ +3^ - 757 diff --git a/tests/bc/misc1.txt b/tests/bc/misc1.txt new file mode 100644 index 000000000000..7e9d9660457f --- /dev/null +++ b/tests/bc/misc1.txt @@ -0,0 +1,76 @@ +define x(x) { + return(x) +} +define y() { + return; +} +define z() { + return (); +} +scale = 0 +x=2 +x[0]=3 +x +x[0] +scale +ibase +obase +x ( 7 ) +x + x( 8 ) +x - x[0] +321 * x +2 ^ x[0] +x++ +--x +x += 9 +x +length(2381) +sqrt(9) +scale(238.1) +x=2 +x[0]=3 +(x) +(x[0]) +(scale) +(ibase) +(obase) +(x ( 7 )) +(x + x( 8 )) +(x - x[0]) +(321 * x) +(2 ^ x[0]) +(x++) +(--x) +(x += 9) +(length(2381)) +(sqrt(9)) +(scale(238.1)) +(scale = 0) +(x = 10) +(x += 100) +(x -= 10) +(x *= 10) +(x /= 100) +(x ^= 10) +(x = sqrt(x)) +(x[1 - 1]) +x[(1 - 1)] +2 + \ +3 +++ibase +--ibase +++obase +--obase +++last +--last +last +last = 100 +last +. = 150 +. +++scale +--scale +y() +z() +2 + /* +*/3 diff --git a/tests/bc/misc1_results.txt b/tests/bc/misc1_results.txt new file mode 100644 index 000000000000..a9c278069439 --- /dev/null +++ b/tests/bc/misc1_results.txt @@ -0,0 +1,57 @@ +2 +3 +0 +10 +10 +7 +10 +-1 +642 +8 +2 +2 +11 +4 +3 +1 +2 +3 +0 +10 +10 +7 +10 +-1 +642 +8 +2 +2 +11 +4 +3 +1 +0 +10 +110 +100 +1000 +10 +10000000000 +100000 +3 +3 +5 +11 +10 +10 +10 +11 +10 +10 +100 +150 +1 +0 +0 +0 +5 diff --git a/tests/bc/misc2.txt b/tests/bc/misc2.txt new file mode 100644 index 000000000000..7cf162435c1b --- /dev/null +++ b/tests/bc/misc2.txt @@ -0,0 +1,109 @@ +define w() { auto z; return 1; } +define x() { + "x" + return (1) +} +define y() { + "y" + return (2) +} +define z() { + "z" + return (3) +} + +define v() { return } + +v() + +w() + +if (x() == y()) { 1 } +1 +if (x() <= y()) { 2 } +if (y() >= x()) { 3 } +if (x() != y()) { 4 } +if (x() < y()) { 5 } +if (y() > x()) { 6 } + +if (x() == z()) { 11 } +11 +if (x() <= z()) { 12 } +if (z() >= x()) { 13 } +if (x() != z()) { 14 } +if (x() < z()) { 15 } +if (z() > x()) { 16 } + +x = -10 +while (x <= 0) { + x + if (x == -5) break; + x += 1 +} + +define u() { + auto a[]; + return a[0] +} + +u() + +if (x == -4) x +else x - 4 + +x = 1 + +if (x == 1) 1 else 2 +if (x == 0) 1 else 2 + +if (x == 1) 1 else if (x == 0) 2 else 3 +if (x == 0) 1 else if (x == 1) 2 else 3 +if (x == -1) 1 else if (x == 0) 2 else 3 + +if (x == 1) if (x != 0) 1 else 2 else 3 +if (x == 1) if (x == 0) 1 else 2 else 3 +if (x != 1) if (x == 0) 1 else 2 else 3 + +if (x == 1) while (x > 0) { x ; x -= 1 } else 0 +x = 1 +if (x == 0) while (x > 0) { x ; x -= 1 } else 0 + +if(x == 1) { + 11 + while(x == 1) { + 21 + while(x == 1) { + 31 + break + 32 + } + 22 + break + 23 + } + 12 +} +99 + +for (;;) { 123 ; break; } +for (i = 0;; ++i) { i ; if (i == 2) break; else i; } +for (i = 0;; ++i) { i ; if (i != 2) i else break } + +while (i > 0) if (i == 1) break else i-- +while (i < 3) if (i != 2) i++ else break + +for(i=1; i<=3; i++) { i; if(i==2) continue; print i,i,"\n" } + +print 1,2,3 +print "\n" + +ifz = 1 +ifz +++ifz +ifz++ +ifz + +{ + 4 + 5 +} diff --git a/tests/bc/misc2_results.txt b/tests/bc/misc2_results.txt new file mode 100644 index 000000000000..986a3a2a13e1 --- /dev/null +++ b/tests/bc/misc2_results.txt @@ -0,0 +1,63 @@ +0 +1 +xy1 +xy2 +yx3 +xy4 +xy5 +yx6 +xz11 +xz12 +zx13 +xz14 +xz15 +zx16 +-10 +-9 +-8 +-7 +-6 +-5 +0 +-9 +1 +2 +1 +2 +3 +1 +2 +3 +1 +0 +11 +21 +31 +22 +12 +99 +123 +0 +0 +1 +1 +2 +0 +0 +1 +1 +2 +2 +1 +1 +11 +2 +3 +33 +123 +1 +2 +2 +3 +4 +5 diff --git a/tests/bc/misc3.txt b/tests/bc/misc3.txt new file mode 100644 index 000000000000..7aad374c4ef6 --- /dev/null +++ b/tests/bc/misc3.txt @@ -0,0 +1,12 @@ +for (i = 0; i < A; ++i) +{print "n" +if(1)if(1){3 +} +if(0)if(1){3 +} +else 4 +if(0){if(1){3 +}} +else 5 +{i} +} diff --git a/tests/bc/misc3_results.txt b/tests/bc/misc3_results.txt new file mode 100644 index 000000000000..06d8bdcbd06e --- /dev/null +++ b/tests/bc/misc3_results.txt @@ -0,0 +1,30 @@ +n3 +5 +0 +n3 +5 +1 +n3 +5 +2 +n3 +5 +3 +n3 +5 +4 +n3 +5 +5 +n3 +5 +6 +n3 +5 +7 +n3 +5 +8 +n3 +5 +9 diff --git a/tests/bc/misc4.txt b/tests/bc/misc4.txt new file mode 100644 index 000000000000..b225b286fd5f --- /dev/null +++ b/tests/bc/misc4.txt @@ -0,0 +1,2 @@ +if ( 1 != 1 ) 7 +maxibase() + 1 diff --git a/tests/bc/misc4_results.txt b/tests/bc/misc4_results.txt new file mode 100644 index 000000000000..81b5c5d06cc0 --- /dev/null +++ b/tests/bc/misc4_results.txt @@ -0,0 +1 @@ +37 diff --git a/tests/bc/misc5.txt b/tests/bc/misc5.txt new file mode 100644 index 000000000000..41852d4a2492 --- /dev/null +++ b/tests/bc/misc5.txt @@ -0,0 +1,20 @@ +if (1) {} +else 4 + +if (0) {} +else 5 + +if (1) 6 +else {} + +if (0) 7 +else {} + +{ + if (1) if (1) +} +print "n\n" + +if (1) { + print "true\n" +} diff --git a/tests/bc/misc5_results.txt b/tests/bc/misc5_results.txt new file mode 100644 index 000000000000..d8c70d83c1d5 --- /dev/null +++ b/tests/bc/misc5_results.txt @@ -0,0 +1,4 @@ +5 +6 +n +true diff --git a/tests/bc/misc_results.txt b/tests/bc/misc_results.txt new file mode 100644 index 000000000000..e2db76e0ef90 --- /dev/null +++ b/tests/bc/misc_results.txt @@ -0,0 +1,4 @@ +-1284597623836.9 +-1284597623836.9 +-4483684050181.80 +-4483684050181.80 diff --git a/tests/bc/modulus.txt b/tests/bc/modulus.txt new file mode 100644 index 000000000000..e2656a6e919c --- /dev/null +++ b/tests/bc/modulus.txt @@ -0,0 +1,70 @@ +1 % 1 +2 % 1 +16 % 4 +15 % 4 +17 % 4 +2389473 % 5 +39240687239 % 1 +346728934 % 23958 +3496723859067234 % 298375462837546928347623059375486 +-1 % 1 +-2 % 1 +-47589634875689345 % 37869235 +-1274852934765 % 2387628935486273546 +-6324758963 % 237854962 +1 % -1 +2 % -1 +2 % -2 +2 % -3 +16 % 5 +15 % 5 +14 % 5 +89237423 % -237856923854 +123647238946 % -12467 +-1 % -1 +-2 % -1 +-2 % -2 +-2 % -3 +-13 % -7 +-14 % -7 +-15 % -7 +-12784956 % -32746 +-127849612 % -23712347682193 +1 % 0.2395672438567234 +scale = 0 +1 % 1 +2 % 1 +16 % 4 +15 % 4 +17 % 4 +2389473 % 5 +39240687239 % 1 +346728934 % 23958 +3496723859067234 % 298375462837546928347623059375486 +-1 % 1 +-2 % 1 +-47589634875689345 % 37869235 +-1274852934765 % 2387628935486273546 +-6324758963 % 237854962 +1 % -1 +2 % -1 +2 % -2 +2 % -3 +16 % 5 +15 % 5 +14 % 5 +89237423 % -237856923854 +123647238946 % -12467 +-1 % -1 +-2 % -1 +-2 % -2 +-2 % -3 +-13 % -7 +-14 % -7 +-15 % -7 +-12784956 % -32746 +-127849612 % -23712347682193 +-3191280681 % 641165986 +scale = 0; -899510228 % -2448300078.40314 +scale = 0; -7424863 % -207.2609738667 +scale = 0; 3769798918 % 0.6 diff --git a/tests/bc/modulus_results.txt b/tests/bc/modulus_results.txt new file mode 100644 index 000000000000..e85145be70da --- /dev/null +++ b/tests/bc/modulus_results.txt @@ -0,0 +1,69 @@ +0 +0 +0 +0 +0 +0 +0 +.00000000000000002026 +2747189239559.46904933397471305894 +0 +0 +-.00000000000011057855 +-.00076922992566770712 +-.00000000000050364144 +0 +0 +0 +.00000000000000000002 +0 +0 +0 +.00000000070585524350 +.00000000000000002898 +0 +0 +0 +-.00000000000000000002 +-.00000000000000000005 +0 +-.00000000000000000002 +-.00000000000000011722 +-.00000002640923745817 +.000000000000000000000404744340951948 +0 +0 +0 +3 +1 +3 +0 +8758 +3496723859067234 +0 +0 +-8236960 +-1274852934765 +-140529951 +0 +0 +0 +2 +1 +0 +4 +89237423 +6692 +0 +0 +0 +-2 +-6 +0 +-1 +-14016 +-127849612 +-626616737 +-899510228.00000 +-153.1331732059 +.4 diff --git a/tests/bc/multiply.txt b/tests/bc/multiply.txt new file mode 100644 index 000000000000..e4b023d86d2f --- /dev/null +++ b/tests/bc/multiply.txt @@ -0,0 +1,64 @@ +0 * 0 +0.000 * 0 +1 * 0 +0 * 1 +0 * 2498752389672835476 +873246913745129084576134 * 0 +1 * 472638590273489273456 +12374861230476103672835496 * 1 +1 * 1 +2 * 1 +1 * 2 +2 * 2 +3 * 14 +17 * 8 +1892467513846753 * 1872439821374591038746 +328962735862.2973546835638947635 * 1728465791348762356 +38745962374538.387427384672934867234 * 0.1932476528394672837568923754 +9878894576289457634856.2738627161689017387608947567654 * 37842939768237596237854203.29874372139852739126739621793162 +-1 * 1 +-1 * 2 +1 * -1 +2 * -1 +-1 * -1 +-1 * -2 +78893457 * -34876238956 +235678324957634 * -0.2349578349672389576 +-12849567821934 * 12738462937681 +1274861293467.927843682937462 * -28935678239 +2936077239872.12937462836 * -0.012842357682435762 +2387692387566.2378569237546 * -272189345628.123875629835876 +0.012348629356782835962 * -23487692356 +0.4768349567348675934 * -0.23756834576934857638495 +0.98748395367485962735486 * -4675839462354867.376834956738456 +-321784627934586 * -235762378596 +-32578623567892356 * -0.32567384579638456 +-35768232346876 * -2348672935602387620.28375682349576237856 +-0.2356728394765234 * -238759624356978 +-0.2345768212346780 * -0.235768124697074385948943532045 +-0.370873860736785306278630 * -7835678398607.7086378076867096270 +-78365713707.7089637863786730 * -738580798679306780 +-73867038956790490258249 * -0.7379862716391723672803679 +-378621971598721837710387 * -98465373878350798.09743896037963078560 +37164201 * 2931559660 +679468076118972457796560530571.46287161642138401685 * 93762.2836 +.000000000000000000000000001 * .0000000000000000000000001 +scale = 0; 237854962 * -26 +scale = 20; -989840367 * -604515309.000000000000000000000000000934882580147931989975995184020932681975029644558793192923907 +scale = 20; 623151276.1106104320046667401793737969130124845763706302869482103753909 * -605483272.00000000000000000000000000000000000000000000000000000000000000000001214399683339235971324443660465351061300645722062237312361947 +scale = 20; -4036255151 * -107387984.0000000000000000000000000000000000000211170318819607129506079448130618538050115777171523510326383 +scale = 19; 207225741.422284845290215111137445727462936392828872808516127361319675 * -1915632919.00000000000000000001200266819789205382734342543620744656564870683107249138254072 +scale = 4; -3700694776.00000000000000000000000001187600351487950366746489017325409746844911432455524847144387 * 3138176186.1604970875815488831816899415825759179598942878342303599901133 +scale = 4; 2471252773 * -2993804686 +scale = 5; -4136888605.1006664686088985948377077150956015758460597074849621165317181 * -356481995.883644326721780591302331282263396633424696084971708651216219 +scale = 10; -1226031704.000000000000000000000000000001604564576253363548680043729535457438899040946479243020383986 * -1255956056 +scale = 19; 1916023355.00000000000000000000000000000000000590795041191824027930567027047057471024023798017409006012644 * -3373891612 +scale = 22; 579072526.647812809110145427578413082391478903947155934872093047795435 * -2359518757 +scale = 16; 3426351583 * -1097923200.1397570019820419234583136053292187927164488359163611530503423 +scale = 29; 2500140133 * 2519408882.136359515749313850856768153433872015185470839039102302348122 +scale = 26; -2643644458 * -1308250843 +scale = 1; -1657954173 * 3046852834.163701388468236163905483103301582741070980569231164917728216 +scale = 19; -2350345163 * 1973064755 +scale = 23; -847296455 * 0 +scale = 32; -340132470 * 0 +scale = 30; 0 * -898777681 diff --git a/tests/bc/multiply_results.txt b/tests/bc/multiply_results.txt new file mode 100644 index 000000000000..c37e8dea8899 --- /dev/null +++ b/tests/bc/multiply_results.txt @@ -0,0 +1,78 @@ +0 +0 +0 +0 +0 +0 +472638590273489273456 +12374861230476103672835496 +1 +2 +2 +4 +42 +136 +3543531533584430580556128344529291738 +568600835566479683035874339053.4411638427543228060 +7487566285885.8557453089005171423976251098 +373846412427291014394738378015501363938345620046.7869650248829232267\ +2297002026819 +-1 +-2 +-1 +-2 +1 +2 +-2751507058396910892 +-55374468980751.0837656919743223184 +-163683743464924630346895054 +-36888976187143312550878.567134791289418 +-37706154097.69662826215753378160 +-649904428532907022680241.94791869424754101064 +-290040807.350385412976669306472 +-.11328089187650139309272 +-4617316439035114.40320367843985107357898 +75864709277486862054521256 +10610005628108234.92015040406042336 +84007879267445533366251128067927.91168012197674537856 +56269158624557.1027018519702852 +.055305737239900889424090264801 +2906048299183.472237078104362540110129 +57879411419313585866282299201.3825582163029400 +54512860676747314187949.9414724679950990587298071 +37281153992026463004361915151761464058058.54968338992209002720 +108949072447731660 +63708478450213482928510139572007971.83536929222529239687 +0 +-6184229012 +598373655317678403.0000000000000000009253845162355359152488793941415\ +12541608457628205955407160901907953869 +-377307673610427838.287519137113381113465954298538150423110843701312\ +63603041103236754712381166109996409858143288621328522821527713676934\ +622001341437 +433445303575505584.0000000000000000000000000000852337287073951516265\ +237258332446395020869301754929979072465074948833 +-396968451932710729.832758175488621830920257166881504044017181955086\ +43506193467199715507328434681876 +-11613432218291755069.5762524259791142629353752893708044134847560553\ +8136567321175929541134735412916995398760 +-7398448132097894278 +1474726306694590904.736489533186588598709217518359873918376540725558\ +9059364344850 +1539841943486799424.000000000000000000002015262596788485739334351728\ +454883837115500449322577149746998662119216 +-6464455125830598260.00000000000000000000000001993278433888289570814\ +993810957844330769886942619318475359317157542128 +-1366332488288896656.12024861536905075619688089083311576513457394212\ +2626381474295 +-3761870894811282224.97650348201375765613020604657735333908053129235\ +37456182968609 +6298875257665779203.841305125739782495076325186750781083182842822393\ +239949380226 +3458550090770778094 +-5051542370918585682.13680622589660768869984918306341072395872527699\ +8697397045368 +-4637383203200030065 +0 +0 +0 diff --git a/tests/bc/pi.txt b/tests/bc/pi.txt new file mode 100644 index 000000000000..b98419f1236b --- /dev/null +++ b/tests/bc/pi.txt @@ -0,0 +1,4 @@ +for (i = 0; i <= 100; ++i) { + scale = i + 4 * a(1) +} diff --git a/tests/bc/pi_results.txt b/tests/bc/pi_results.txt new file mode 100644 index 000000000000..128d6c0ca758 --- /dev/null +++ b/tests/bc/pi_results.txt @@ -0,0 +1,135 @@ +0 +2.8 +3.12 +3.140 +3.1412 +3.14156 +3.141592 +3.1415924 +3.14159264 +3.141592652 +3.1415926532 +3.14159265356 +3.141592653588 +3.1415926535896 +3.14159265358976 +3.141592653589792 +3.1415926535897932 +3.14159265358979320 +3.141592653589793236 +3.1415926535897932384 +3.14159265358979323844 +3.141592653589793238460 +3.1415926535897932384624 +3.14159265358979323846264 +3.141592653589793238462640 +3.1415926535897932384626432 +3.14159265358979323846264336 +3.141592653589793238462643380 +3.1415926535897932384626433832 +3.14159265358979323846264338324 +3.141592653589793238462643383276 +3.1415926535897932384626433832792 +3.14159265358979323846264338327948 +3.141592653589793238462643383279500 +3.1415926535897932384626433832795028 +3.14159265358979323846264338327950288 +3.141592653589793238462643383279502884 +3.1415926535897932384626433832795028840 +3.14159265358979323846264338327950288416 +3.141592653589793238462643383279502884196 +3.1415926535897932384626433832795028841968 +3.14159265358979323846264338327950288419716 +3.141592653589793238462643383279502884197168 +3.1415926535897932384626433832795028841971692 +3.14159265358979323846264338327950288419716936 +3.141592653589793238462643383279502884197169396 +3.1415926535897932384626433832795028841971693992 +3.14159265358979323846264338327950288419716939936 +3.141592653589793238462643383279502884197169399372 +3.1415926535897932384626433832795028841971693993748 +3.14159265358979323846264338327950288419716939937508 +3.141592653589793238462643383279502884197169399375104 +3.1415926535897932384626433832795028841971693993751056 +3.14159265358979323846264338327950288419716939937510580 +3.141592653589793238462643383279502884197169399375105820 +3.1415926535897932384626433832795028841971693993751058208 +3.14159265358979323846264338327950288419716939937510582096 +3.141592653589793238462643383279502884197169399375105820972 +3.1415926535897932384626433832795028841971693993751058209748 +3.14159265358979323846264338327950288419716939937510582097492 +3.141592653589793238462643383279502884197169399375105820974944 +3.1415926535897932384626433832795028841971693993751058209749444 +3.14159265358979323846264338327950288419716939937510582097494456 +3.141592653589793238462643383279502884197169399375105820974944592 +3.1415926535897932384626433832795028841971693993751058209749445920 +3.14159265358979323846264338327950288419716939937510582097494459228 +3.141592653589793238462643383279502884197169399375105820974944592304 +3.141592653589793238462643383279502884197169399375105820974944592307\ +6 +3.141592653589793238462643383279502884197169399375105820974944592307\ +80 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816404 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164060 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406284 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062860 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862088 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620896 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208996 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089984 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620899860 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208998628 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089986280 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620899862800 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208998628032 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089986280348 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620899862803480 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208998628034824 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089986280348252 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620899862803482532 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208998628034825340 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089986280348253420 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620899862803482534208 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208998628034825342116 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089986280348253421168 +3.141592653589793238462643383279502884197169399375105820974944592307\ +81640628620899862803482534211704 +3.141592653589793238462643383279502884197169399375105820974944592307\ +816406286208998628034825342117064 +3.141592653589793238462643383279502884197169399375105820974944592307\ +8164062862089986280348253421170676 diff --git a/tests/bc/places.txt b/tests/bc/places.txt new file mode 100644 index 000000000000..f10952330a06 --- /dev/null +++ b/tests/bc/places.txt @@ -0,0 +1,20 @@ +0 @ 0 +1 @ 0 +2 @ 0 +0.0023896 @ 0 +1.298346 @ 0 +2.00000000 @ 0 +0.0023896 @ 3 +1.298346 @ 4 +2.00000000 @ 5 +289 @ 3 +18.34 @ 6 +-183.1 @ 0 +-23.238 @ 8 +-343.23 @ 2 +x = 89136.892348976 +x @= 7 +x +-.1897263 @ 0 +.1982365 @ 0 +.0 @ 2 diff --git a/tests/bc/places_results.txt b/tests/bc/places_results.txt new file mode 100644 index 000000000000..381ad9c3e54c --- /dev/null +++ b/tests/bc/places_results.txt @@ -0,0 +1,18 @@ +0 +1 +2 +0 +1 +2 +.002 +1.2983 +2.00000 +289.000 +18.340000 +-183 +-23.23800000 +-343.23 +89136.8923489 +0 +0 +0 diff --git a/tests/bc/posix_errors.txt b/tests/bc/posix_errors.txt new file mode 100644 index 000000000000..2bd5d9feed84 --- /dev/null +++ b/tests/bc/posix_errors.txt @@ -0,0 +1,31 @@ +aa = 0 +# This is a comment. +while (q==0) { ++q; continue; } +last +print "i: ", i +halt +define x(e) { return 0; } +define x(e) { return 4*(e+e); } +define x(e) { return (e+e)*4; } +limits +. +if (q!=0) { x=3; } else { x=4; } +x<=0 +while (q!=0 && x==0) { ++q; } +while (q!=0 || x==0) { ++q; } +while (!q) { ++q; } +for (; x<0; ++x) { y += 1; } +for (x=0;; ++x) { y += 1; } +for (x=0; x<0;) { y += 1; } +for (x=0;;) { y += 1; } +for (; x<0;) { y += 1; } +for (;; ++x) { y += 1; } +for (;;) { y += 1; } +3e2981 +9.892108e-20 +obase = 0 +obase = 1 +define void a(e) { "stuff" } +maxibase() +maxobase() +maxscale() diff --git a/tests/bc/power.txt b/tests/bc/power.txt new file mode 100644 index 000000000000..e4065fbfa256 --- /dev/null +++ b/tests/bc/power.txt @@ -0,0 +1,43 @@ +0 ^ 0 +0 ^ 1 +0 ^ 1894 +1 ^ 0 +39746823 ^ 0 +0.238672983047682 ^ 0 +18394762374689237468.97354862973846 ^ 0 +1 ^ 1 +2 ^ 1 +18927361346 ^ 1 +0.23523785962738592635777 ^ 1 +328956734869213746.89782398457234 ^ 1 +8937 ^ 98 +0.124876812394 ^ 2396 +93762.2836 ^ 13 +1 ^ -1 +2 ^ -1 +10 ^ -1 +683734768 ^ -1 +38579623756.897937568235 ^ -1 +1 ^ -32467 +2 ^ -53 +23897 ^ -213 +-1 ^ 1 +-1 ^ 2 +-2 ^ 1 +-2 ^ 2 +-237 ^ 294 +-3746 ^ 28 +-0.3548 ^ 35 +-4267.234 ^ 37 +-326.3246 ^ 78 +-1 ^ -1 +-1 ^ -2 +-2 ^ -1 +-2 ^ -2 +-237 ^ -293 +-784 ^ -23 +-86 ^ -7 +-0.23424398 ^ -781 +-178.234786 ^ -879 +-1274.346 ^ -768 +-0.2959371298 ^ 227 diff --git a/tests/bc/power_results.txt b/tests/bc/power_results.txt new file mode 100644 index 000000000000..280347a9f258 --- /dev/null +++ b/tests/bc/power_results.txt @@ -0,0 +1,72 @@ +1 +0 +0 +1 +1 +1 +1 +1 +2 +18927361346 +.23523785962738592635777 +328956734869213746.89782398457234 +16473742664221279051571200630760751138799221376964991600670000200609\ +08006052596520320731708604393844468006290371918262741885989163144389\ +39367835091560809036359941703341471396407660150658436796925310445979\ +21333166245765946557344383284626113908419359990042883048537750217279\ +17481980123593363177308481941550382845381799410533956718500484099889\ +610805653325917409549921909941664118421333562129 +0 +43287877285033571298394739716218787350087163435619825150259705419.98\ +016445740928054425 +1.00000000000000000000 +.50000000000000000000 +.10000000000000000000 +.00000000146255543348 +.00000000002592041867 +1.00000000000000000000 +.00000000000000011102 +0 +-1 +1 +-2 +4 +14997322375665265051328725757939209353051902095893907150382724666290\ +49749481660976421019742616298227588464420182758442163654172400528243\ +00885441207762486233574213374503090372518590691583139696652847404883\ +08573912261119588874308960204159666762789603037188471170006223907416\ +60492840269152716750700089148882139254399347568222390231015487895905\ +73727080561379177721440905866857248917982113340543176658480139248897\ +54802503253413282808814063861470711399810899724515727713334909764746\ +27910290211411231279325882505708287941671508154740003122373284699097\ +78346501539634198926772266511968381368929692275950529960923432771985\ +12597189390708050983487158873301681237787429436264801751664042999180\ +3448659818912436089 +11478830555358864333472551120140548480416206583184496764727387456058\ +792742209537931243951391229607936 +-.00000000000000017759 +-2067373624686414405470850679965010694114490999957199847684803894306\ +56243666149296582304582679590231948238805965642713928910384741502707\ +.23224479257866798694 +11606078892843496082360561256965139908586179418605021706789617179085\ +85768049299693425729565480314913006780973928345684673490252494674985\ +0186164225375953066263609289359900615361965737717208159874390.293769\ +70206344604971 +-1.00000000000000000000 +1.00000000000000000000 +-.50000000000000000000 +.25000000000000000000 +0 +0 +-.00000000000002874159 +-1945134149489344891879057554905782841936258356736314337975569799825\ +94091939572752348215929683891336730843553721422164737465108229034947\ +87333189564755763444242676978610321731298729194092653999616928308494\ +26419468484566422775668903315088810746121307679948574976162519479931\ +18935243698160094347216562490000767121041786977792546155155934655909\ +14123833869470494708767968978717730012864171105540029928688274136791\ +98175053824022144065005509214813689232148489884560100200475909009813\ +340098100705258138.98542904577525702068 +0 +0 +0 diff --git a/tests/bc/print2.txt b/tests/bc/print2.txt new file mode 100644 index 000000000000..7f65fbe4c106 --- /dev/null +++ b/tests/bc/print2.txt @@ -0,0 +1,194 @@ +define prnt(i) { + + obase = i - 1 + a + b + c + + obase = i + a + b + c + + return i +} + +define prnt2(i) { + + obase = i + 1 + a + b + c + + print "\n" + + return i * 10 +} + +a = 999999999999999999999999999999999999 +b = a + 1 +c = b + 1 + +i = 100 +i = prnt(i) + +if (i + 1 <= maxobase()) { + i = prnt2(i) +} +else { + print " 084 044 021 047 096 073 015 052 088 014 072 097 047 021 094 051 083\e\n 000\n" + print " 084 044 021 047 096 073 015 052 088 014 072 097 047 021 094 051 083\e\n 001\n" + print " 084 044 021 047 096 073 015 052 088 014 072 097 047 021 094 051 083\e\n 002\n" + print "\n" + i *= 10 +} + +if (i <= maxobase()) { + i = prnt(i) +} +else { + print " 001 012 066 220 495 792 924 792 495 220 066 012 000\n" + print " 001 012 066 220 495 792 924 792 495 220 066 012 001\n" + print " 001 012 066 220 495 792 924 792 495 220 066 012 002\n" + print " 999 999 999 999 999 999 999 999 999 999 999 999\n" + print " 001 000 000 000 000 000 000 000 000 000 000 000 000\n" + print " 001 000 000 000 000 000 000 000 000 000 000 000 001\n" +} + +if (i + 1 <= maxobase()) { + i = prnt2(i) +} +else { + print " 0989 0065 0781 0494 0209 0923 0209 0494 0781 0065 0989 0000\n" + print " 0989 0065 0781 0494 0209 0923 0209 0494 0781 0065 0989 0001\n" + print " 0989 0065 0781 0494 0209 0923 0209 0494 0781 0065 0989 0002\n" + print "\n" + i *= 10 +} + +if (i <= maxobase()) { + i = prnt(i) +} +else { + print " 0001 0009 0036 0084 0126 0126 0084 0036 0009 0000\n" + print " 0001 0009 0036 0084 0126 0126 0084 0036 0009 0001\n" + print " 0001 0009 0036 0084 0126 0126 0084 0036 0009 0002\n" + print " 9999 9999 9999 9999 9999 9999 9999 9999 9999\n" + print " 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000\n" + print " 0001 0000 0000 0000 0000 0000 0000 0000 0000 0001\n" +} + +if (i + 1 <= maxobase()) { + i = prnt2(i) +} +else { + print " 09992 00035 09917 00125 09875 00083 09965 00008 09999\n" + print " 09992 00035 09917 00125 09875 00083 09965 00008 10000\n" + print " 09992 00035 09917 00125 09875 00083 09965 00009 00000\n" + print "\n" + i *= 10 +} + +if (i <= maxobase()) { + i = prnt(i) +} +else { + print " 00010 00070 00210 00350 00350 00210 00070 00009\n" + print " 00010 00070 00210 00350 00350 00210 00070 00010\n" + print " 00010 00070 00210 00350 00350 00210 00070 00011\n" + print " 00009 99999 99999 99999 99999 99999 99999 99999\n" + print " 00010 00000 00000 00000 00000 00000 00000 00000\n" + print " 00010 00000 00000 00000 00000 00000 00000 00001\n" +} + +if (i + 1 <= maxobase()) { + i = prnt2(i) +} +else { + print " 000009 099931 000209 099651 000349 099791 000069 099990\n" + print " 000009 099931 000209 099651 000349 099791 000069 099991\n" + print " 000009 099931 000209 099651 000349 099791 000069 099992\n" + print "\n" + i *= 10 +} + +if (i <= maxobase()) { + i = prnt(i) +} +else { + print " 000001 000006 000015 000020 000015 000006 000000\n" + print " 000001 000006 000015 000020 000015 000006 000001\n" + print " 000001 000006 000015 000020 000015 000006 000002\n" + print " 999999 999999 999999 999999 999999 999999\n" + print " 000001 000000 000000 000000 000000 000000 000000\n" + print " 000001 000000 000000 000000 000000 000000 000001\n" +} + +if (i + 1 <= maxobase()) { + i = prnt2(i) +} +else { + print " 0999995 0000014 0999981 0000014 0999995 0000000\n" + print " 0999995 0000014 0999981 0000014 0999995 0000001\n" + print " 0999995 0000014 0999981 0000014 0999995 0000002\n" + print "\n" + i *= 10 +} + +if (i <= maxobase()) { + i = prnt(i) +} +else { + print " 0000010 0000050 0000100 0000100 0000050 0000009\n" + print " 0000010 0000050 0000100 0000100 0000050 0000010\n" + print " 0000010 0000050 0000100 0000100 0000050 0000011\n" + print " 0000009 9999999 9999999 9999999 9999999 9999999\n" + print " 0000010 0000000 0000000 0000000 0000000 0000000\n" + print " 0000010 0000000 0000000 0000000 0000000 0000001\n" +} + +if (i + 1 <= maxobase()) { + i = prnt2(i) +} +else { + print " 00000009 09999951 00000099 09999901 00000049 09999990\n" + print " 00000009 09999951 00000099 09999901 00000049 09999991\n" + print " 00000009 09999951 00000099 09999901 00000049 09999992\n" + print "\n" + i *= 10 +} + +if (i <= maxobase()) { + i = prnt(i) +} +else { + print " 00010000 00040000 00060000 00040000 00009999\n" + print " 00010000 00040000 00060000 00040000 00010000\n" + print " 00010000 00040000 00060000 00040000 00010001\n" + print " 00009999 99999999 99999999 99999999 99999999\n" + print " 00010000 00000000 00000000 00000000 00000000\n" + print " 00010000 00000000 00000000 00000000 00000001\n" +} + +if (i + 1 <= maxobase()) { + i = prnt2(i) +} +else { + print " 000009999 099960001 000059999 099960001 000009999\n" + print " 000009999 099960001 000059999 099960001 000010000\n" + print " 000009999 099960001 000059999 099960001 000010001\n" + print "\n" + i *= 10 +} + +if (i <= maxobase()) { + i = prnt(i) +} +else { + print " 000000001 000000004 000000006 000000004 000000000\n" + print " 000000001 000000004 000000006 000000004 000000001\n" + print " 000000001 000000004 000000006 000000004 000000002\n" + print " 999999999 999999999 999999999 999999999\n" + print " 000000001 000000000 000000000 000000000 000000000\n" + print " 000000001 000000000 000000000 000000000 000000001\n" +} diff --git a/tests/bc/print2_results.txt b/tests/bc/print2_results.txt new file mode 100644 index 000000000000..625e6f0bfd07 --- /dev/null +++ b/tests/bc/print2_results.txt @@ -0,0 +1,79 @@ + 01 19 62 55 79 46 79 96 00 60 26 35 38 84 98 25 54 18 00 + 01 19 62 55 79 46 79 96 00 60 26 35 38 84 98 25 54 18 01 + 01 19 62 55 79 46 79 96 00 60 26 35 38 84 98 25 54 18 02 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 + 084 044 021 047 096 073 015 052 088 014 072 097 047 021 094 051 083\ + 000 + 084 044 021 047 096 073 015 052 088 014 072 097 047 021 094 051 083\ + 001 + 084 044 021 047 096 073 015 052 088 014 072 097 047 021 094 051 083\ + 002 + + 001 012 066 220 495 792 924 792 495 220 066 012 000 + 001 012 066 220 495 792 924 792 495 220 066 012 001 + 001 012 066 220 495 792 924 792 495 220 066 012 002 + 999 999 999 999 999 999 999 999 999 999 999 999 + 001 000 000 000 000 000 000 000 000 000 000 000 000 + 001 000 000 000 000 000 000 000 000 000 000 000 001 + 0989 0065 0781 0494 0209 0923 0209 0494 0781 0065 0989 0000 + 0989 0065 0781 0494 0209 0923 0209 0494 0781 0065 0989 0001 + 0989 0065 0781 0494 0209 0923 0209 0494 0781 0065 0989 0002 + + 0001 0009 0036 0084 0126 0126 0084 0036 0009 0000 + 0001 0009 0036 0084 0126 0126 0084 0036 0009 0001 + 0001 0009 0036 0084 0126 0126 0084 0036 0009 0002 + 9999 9999 9999 9999 9999 9999 9999 9999 9999 + 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 + 0001 0000 0000 0000 0000 0000 0000 0000 0000 0001 + 09992 00035 09917 00125 09875 00083 09965 00008 09999 + 09992 00035 09917 00125 09875 00083 09965 00008 10000 + 09992 00035 09917 00125 09875 00083 09965 00009 00000 + + 00010 00070 00210 00350 00350 00210 00070 00009 + 00010 00070 00210 00350 00350 00210 00070 00010 + 00010 00070 00210 00350 00350 00210 00070 00011 + 00009 99999 99999 99999 99999 99999 99999 99999 + 00010 00000 00000 00000 00000 00000 00000 00000 + 00010 00000 00000 00000 00000 00000 00000 00001 + 000009 099931 000209 099651 000349 099791 000069 099990 + 000009 099931 000209 099651 000349 099791 000069 099991 + 000009 099931 000209 099651 000349 099791 000069 099992 + + 000001 000006 000015 000020 000015 000006 000000 + 000001 000006 000015 000020 000015 000006 000001 + 000001 000006 000015 000020 000015 000006 000002 + 999999 999999 999999 999999 999999 999999 + 000001 000000 000000 000000 000000 000000 000000 + 000001 000000 000000 000000 000000 000000 000001 + 0999995 0000014 0999981 0000014 0999995 0000000 + 0999995 0000014 0999981 0000014 0999995 0000001 + 0999995 0000014 0999981 0000014 0999995 0000002 + + 0000010 0000050 0000100 0000100 0000050 0000009 + 0000010 0000050 0000100 0000100 0000050 0000010 + 0000010 0000050 0000100 0000100 0000050 0000011 + 0000009 9999999 9999999 9999999 9999999 9999999 + 0000010 0000000 0000000 0000000 0000000 0000000 + 0000010 0000000 0000000 0000000 0000000 0000001 + 00000009 09999951 00000099 09999901 00000049 09999990 + 00000009 09999951 00000099 09999901 00000049 09999991 + 00000009 09999951 00000099 09999901 00000049 09999992 + + 00010000 00040000 00060000 00040000 00009999 + 00010000 00040000 00060000 00040000 00010000 + 00010000 00040000 00060000 00040000 00010001 + 00009999 99999999 99999999 99999999 99999999 + 00010000 00000000 00000000 00000000 00000000 + 00010000 00000000 00000000 00000000 00000001 + 000009999 099960001 000059999 099960001 000009999 + 000009999 099960001 000059999 099960001 000010000 + 000009999 099960001 000059999 099960001 000010001 + + 000000001 000000004 000000006 000000004 000000000 + 000000001 000000004 000000006 000000004 000000001 + 000000001 000000004 000000006 000000004 000000002 + 999999999 999999999 999999999 999999999 + 000000001 000000000 000000000 000000000 000000000 + 000000001 000000000 000000000 000000000 000000001 diff --git a/tests/bc/rand.txt b/tests/bc/rand.txt new file mode 100644 index 000000000000..5b53d10debe6 --- /dev/null +++ b/tests/bc/rand.txt @@ -0,0 +1,323 @@ +print "Gathering array...\n" + +s = seed + +sum = 0 + +for (i = 0; i < 100; ++i) { + a[i] = rand() + sum += a[i] + b[i] = irand(sum) +} + +print "Testing implementation...\n" + +if (maxrand() >= 2^64 - 1) { + + seed = 54.86785590782347282592869373784717814475564948862907968939359536927733440\ + 901359008180088183692646452982444316148757934570312500000 + + ibase = G + obase = G + + for (i = 0; i < 64; ++i) { + rand() + } + + seed = 0.2890120 + + rand() + + 7B47F409 + BA1D3330 + 83D2F293 + BFA4784B + CBED606E + BFC6A3AD + 812FFF6D + E61F305A + F9384B90 + 32DB86FE + 1DC035F9 + ED786826 + 3822441D + 2BA113D7 + 1C5B818B + A233956A + 84DA65E3 + CED67292 + B2C0FE06 + 91817130 + + 55FE8917 + 47E92091 + 486AF299 + B1E882BB + C261E845 + 1A9B90F6 + 7964E884 + 5F36D7A4 + 1EE2052D + 8519F5D5 + 293D4E4F + 6D8F99FC + C3421509 + A06CD7C6 + E43064D3 + E20F9BF0 + 401B50B7 + 8EF1FF3E + E357E2B2 + A4AEEE37 + + 2AD4426A + 9D11BE94 + 7290C556 + 6E6F3787 + 050C2EE3 + 4FD73703 + C6FF478B + 4B1CA1E1 + 1654EA91 + CD08B2F2 + F7FF3DA8 + 78B1B8DA + A100602C + 9588585F + DA028873 + 66B4F376 + 0E6B4B9A + 48167094 + 0D58CDA0 + 8F7238BE + + F79983F3 + 07E5D324 + AD78DF52 + 1532BA74 + 1E4899E2 + 6C75DF64 + 171DDC36 + F2D8D74A + 24E6D907 + 4780FD32 + 9ADF408C + A25544CF + EFC6A738 + 1AA23A54 + C5A13EBB + F739EDC9 + C3A015FA + 3D5E1511 + AFC4D7FB + 3F413B5E + + 4660CB73 + 88FC773F + D6BED59C + 63B3B54A + D67D3DDE + 23394F8B + 13384B44 + DD8B3ABC + FF59A21E + 3BB16D7E + 6E01CB68 + EC34790E + B26C42AD + D723C830 + DFD10FCA + 7E362AA1 + 826FF323 + CB8F63B5 + 9B3227E5 + 9A61E339 + + 40BDACF +} +else { + + ibase = G + obase = G + + 86B1DA1D72062B68 + 1304AA46C9853D39 + A3670E9E0DD50358 + F9090E529A7DAE00 + C85B9FD837996F2C + 606121F8E3919196 + 7CE1C7FF478354BA + CBC4AC70E541310E + 74BE71999EC37F2C + B81F9C99A934F1A7 + 120E9901A900C97F + 0F983BAD4B19F493 + 5934619363660D96 + D5A7FE2717A2014E + 6E437241C9E6676E + 6A75C9DD6329CD29 + 2D9E477683673437 + 51FB0CF3D4405437 + 217BB90392D08B20 + 47C528A018B07A82 + + 1B4E474C418C835E + BDB2BDA74A119ED6 + C6DB79D0B9E43493 + C3CF4834E94A41D1 + AB8312FC7877C7DC + 094B108133E8B5EC + 37CA97AC830113BD + EF02D7347F9192BF + 959517DD9896C53A + 7A80EB7629EFE9F9 + AE53C23F2B1CF57C + CA605CD189F6D5CD + 921C2704886A9622 + B68C9FBF826AF7AA + 73F8C733124772C3 + 6B57F7E459EFBCDF + 9DE7696DDB6B8E18 + 02CA67560DC26877 + A24E353080777DEC + 4D600156763FD65C + + 5CDF9C7E26DD2C38 + 6A32443BBBB16774 + 3D8415FFECFB8B7F + 3090ED9C475635A3 + 6DBF241361C3E652 + 2CA9EF5A2AD971FC + 44FBE937A1CF0FFC + DB17CF0577CB7853 + AA3747D98D31B24C + 5D9A104C5D7F43F7 + BAE65E3E293B2C7B + 16A396F0DB4EF984 + 6DD2BACDC4445A05 + 7B7A13D1858E5CA8 + F73722BCAA52447C + 31A2C7BBE77CBA00 + 7FC8AF9003BA1ACE + 5703F11DD3F235EF + FA1952267EF836C7 + BBFA558C9E2D51E2 + + 3A29661D8145AF36 + 608DEA6358DABD7C + 9E34E9E53431B447 + 325A05E35EA524EB + 63A87CCF0C80ABB1 + 8EA183287A46F292 + E2AA5F119CBF2A08 + 2F3BEB0DE8B730C8 + 4B8006A928CF8F5B + 57B8BA85069C201C + 3422D962DDF59474 + FD744940BA7366A1 + 23D24B06B5DA4F6F + AA187C608319D1DC + DC60CA6FEA738B8A + C9FC61DF96A769FE + 82E2457708658A20 + 2BECEC9B3E7D93EC + 1340DAEC04588952 + F533446AD5C50B1D + + 31FD1C7F434A62CE + D16DAEDD1F281A39 + 6B5D9648931D7057 + 62FEE3392DBB06D5 + 0358BC87B00DF25A + F3C882D22946175D + 65BA8F11B4516EFE + 2DA5A96E626DA4FE + DCC669F4CD6121F0 + 7A47FAC054319CA2 + 9661CFEE277284C8 + 01E483A14F4EB23A + ADDC115507390607 + 5AB47C343BD3B0BD + 4882FB3A3957B11F + 615B7C9C3626DD44 + F79CF49562969219 + 88C32C194EA78D27 + DA8AFFE1353FF352 + A7A3C331A64CB146 + + A1F53517A7BE0CAA + + ibase = A + + seed = 54.0950779151573258314404657465246373249101452529430389404296875000 + + ibase = G + + for (i = 0; i < 64; ++i) { + rand() + } + + seed = 0.2890120 + + rand() +} + +print "Testing array...\n" + +ibase = A + +seed = s + +sum = 0 + +for (i = 0; i < 100; ++i) { + a[i] == rand() + sum += a[i] + b[i] == irand(sum) +} + +print "Exercising irand()...\n" + +scale = 256 + +pow = (maxrand() + 1) ^ 4 +s = 2^256 + 2^128 + (irand(pow) / pow) +seed = s +seed < s + +s = -459.125 +seed = s +seed == -s + +irand(0) +irand(1) +seed == -s +irand(maxrand() + 1) <= maxrand() + +for (i = 0; i < 200; ++i) { + irand(20) < 20 +} + +seed = 738 +seed != 738 + +s = 2398@0625 +seed = s +seed != s + +pow = (maxrand() + 1) ^ 4 +s = 2^2560 + 2^128 + (irand(pow) / pow) +seed = s +seed < s + +b = 0 +m = maxrand() + 1 +n = m + 1 + +for (i = 0; !b && i < 100; ++i) { + c = irand(n) + b = (c != 0 && c != m) + if (c >= n) print "irand() result is too large.\n" +} + +b diff --git a/tests/bc/rand_results.txt b/tests/bc/rand_results.txt new file mode 100644 index 000000000000..fc6177f718e7 --- /dev/null +++ b/tests/bc/rand_results.txt @@ -0,0 +1,616 @@ +Gathering array... +Testing implementation... +86B1DA1D72062B68 +1304AA46C9853D39 +A3670E9E0DD50358 +F9090E529A7DAE00 +C85B9FD837996F2C +606121F8E3919196 +7CE1C7FF478354BA +CBC4AC70E541310E +74BE71999EC37F2C +B81F9C99A934F1A7 +120E9901A900C97F +F983BAD4B19F493 +5934619363660D96 +D5A7FE2717A2014E +6E437241C9E6676E +6A75C9DD6329CD29 +2D9E477683673437 +51FB0CF3D4405437 +217BB90392D08B20 +47C528A018B07A82 +1B4E474C418C835E +BDB2BDA74A119ED6 +C6DB79D0B9E43493 +C3CF4834E94A41D1 +AB8312FC7877C7DC +94B108133E8B5EC +37CA97AC830113BD +EF02D7347F9192BF +959517DD9896C53A +7A80EB7629EFE9F9 +AE53C23F2B1CF57C +CA605CD189F6D5CD +921C2704886A9622 +B68C9FBF826AF7AA +73F8C733124772C3 +6B57F7E459EFBCDF +9DE7696DDB6B8E18 +2CA67560DC26877 +A24E353080777DEC +4D600156763FD65C +5CDF9C7E26DD2C38 +6A32443BBBB16774 +3D8415FFECFB8B7F +3090ED9C475635A3 +6DBF241361C3E652 +2CA9EF5A2AD971FC +44FBE937A1CF0FFC +DB17CF0577CB7853 +AA3747D98D31B24C +5D9A104C5D7F43F7 +BAE65E3E293B2C7B +16A396F0DB4EF984 +6DD2BACDC4445A05 +7B7A13D1858E5CA8 +F73722BCAA52447C +31A2C7BBE77CBA00 +7FC8AF9003BA1ACE +5703F11DD3F235EF +FA1952267EF836C7 +BBFA558C9E2D51E2 +3A29661D8145AF36 +608DEA6358DABD7C +9E34E9E53431B447 +325A05E35EA524EB +63A87CCF0C80ABB1 +8EA183287A46F292 +E2AA5F119CBF2A08 +2F3BEB0DE8B730C8 +4B8006A928CF8F5B +57B8BA85069C201C +3422D962DDF59474 +FD744940BA7366A1 +23D24B06B5DA4F6F +AA187C608319D1DC +DC60CA6FEA738B8A +C9FC61DF96A769FE +82E2457708658A20 +2BECEC9B3E7D93EC +1340DAEC04588952 +F533446AD5C50B1D +31FD1C7F434A62CE +D16DAEDD1F281A39 +6B5D9648931D7057 +62FEE3392DBB06D5 +358BC87B00DF25A +F3C882D22946175D +65BA8F11B4516EFE +2DA5A96E626DA4FE +DCC669F4CD6121F0 +7A47FAC054319CA2 +9661CFEE277284C8 +1E483A14F4EB23A +ADDC115507390607 +5AB47C343BD3B0BD +4882FB3A3957B11F +615B7C9C3626DD44 +F79CF49562969219 +88C32C194EA78D27 +DA8AFFE1353FF352 +A7A3C331A64CB146 +A1F53517A7BE0CAA +7B47F409 +BA1D3330 +83D2F293 +BFA4784B +CBED606E +BFC6A3AD +812FFF6D +E61F305A +F9384B90 +32DB86FE +1DC035F9 +ED786826 +3822441D +2BA113D7 +1C5B818B +A233956A +84DA65E3 +CED67292 +B2C0FE06 +91817130 +55FE8917 +47E92091 +486AF299 +B1E882BB +C261E845 +1A9B90F6 +7964E884 +5F36D7A4 +1EE2052D +8519F5D5 +293D4E4F +6D8F99FC +C3421509 +A06CD7C6 +E43064D3 +E20F9BF0 +401B50B7 +8EF1FF3E +E357E2B2 +A4AEEE37 +2AD4426A +9D11BE94 +7290C556 +6E6F3787 +50C2EE3 +4FD73703 +C6FF478B +4B1CA1E1 +1654EA91 +CD08B2F2 +F7FF3DA8 +78B1B8DA +A100602C +9588585F +DA028873 +66B4F376 +E6B4B9A +48167094 +D58CDA0 +8F7238BE +F79983F3 +7E5D324 +AD78DF52 +1532BA74 +1E4899E2 +6C75DF64 +171DDC36 +F2D8D74A +24E6D907 +4780FD32 +9ADF408C +A25544CF +EFC6A738 +1AA23A54 +C5A13EBB +F739EDC9 +C3A015FA +3D5E1511 +AFC4D7FB +3F413B5E +4660CB73 +88FC773F +D6BED59C +63B3B54A +D67D3DDE +23394F8B +13384B44 +DD8B3ABC +FF59A21E +3BB16D7E +6E01CB68 +EC34790E +B26C42AD +D723C830 +DFD10FCA +7E362AA1 +826FF323 +CB8F63B5 +9B3227E5 +9A61E339 +40BDACF +Testing array... +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +Exercising irand()... +1 +1 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/bc/read.txt b/tests/bc/read.txt new file mode 100644 index 000000000000..8d2f0971e2ce --- /dev/null +++ b/tests/bc/read.txt @@ -0,0 +1 @@ +1 + 1 diff --git a/tests/bc/read_errors.txt b/tests/bc/read_errors.txt new file mode 100644 index 000000000000..1990eaeea621 --- /dev/null +++ b/tests/bc/read_errors.txt @@ -0,0 +1,2 @@ +5+5; +read() diff --git a/tests/bc/read_results.txt b/tests/bc/read_results.txt new file mode 100644 index 000000000000..0cfbf08886fc --- /dev/null +++ b/tests/bc/read_results.txt @@ -0,0 +1 @@ +2 diff --git a/tests/bc/scale.txt b/tests/bc/scale.txt new file mode 100644 index 000000000000..e8bee791bce7 --- /dev/null +++ b/tests/bc/scale.txt @@ -0,0 +1,57 @@ +scale(0) +scale(1) +scale(12) +scale(123) +scale(1234) +scale(12345) +scale(123456) +scale(1234567) +scale(12345678) +scale(123456789) +scale(1234567890) +scale(1.0) +scale(12.0) +scale(123.0) +scale(1234.0) +scale(12345.0) +scale(123456.0) +scale(1234567.0) +scale(12345678.0) +scale(123456789.0) +scale(1234567890.0) +scale(.1) +scale(.12) +scale(.123) +scale(.1234) +scale(.12345) +scale(.123456) +scale(.1234567) +scale(.12345678) +scale(.123456789) +scale(.1234567890) +scale(.01) +scale(.012) +scale(.0123) +scale(.01234) +scale(.012345) +scale(.0123456) +scale(.01234567) +scale(.012345678) +scale(.0123456789) +scale(.01234567890) +scale(.0000000001) +scale(.00000000012) +scale(.000000000123) +scale(.0000000001234) +scale(.00000000012345) +scale(.000000000123456) +scale(.0000000001234567) +scale(.00000000012345678) +scale(.000000000123456789) +scale(.0000000001234567890) +scale(289.29837) +scale(2893.00000) +scale(289.0) +scale(1802973.0000000238) +scale(.000000000000000093182394080000000000) +scale(0.00000000000000000000) diff --git a/tests/bc/scale_results.txt b/tests/bc/scale_results.txt new file mode 100644 index 000000000000..386ef5422173 --- /dev/null +++ b/tests/bc/scale_results.txt @@ -0,0 +1,57 @@ +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +5 +5 +1 +10 +36 +20 diff --git a/tests/bc/scientific.txt b/tests/bc/scientific.txt new file mode 100644 index 000000000000..bd04562a8df3 --- /dev/null +++ b/tests/bc/scientific.txt @@ -0,0 +1,51 @@ +0e0 +0e1 +0e5 +0e-2 +0e-100 +1e0 +-1e1 +1e9 +-1e21 +1e-1 +-1e-2 +1e-5 +4.92837e5 +-3.28971028e20 +6.2e3 +-8.289371e2 +5.9817280937e8 +-3.28977e-1 +8.8927891e-20 +-7.98239e-4 +4.4892e-4 +-18937e0 +198273e10 +-18927e-4 +28937e-5 +-891072e-7 +.28972e0 +-.891273e-1 +.8928397e1 +-.0002983172e5 +.00022e3 +-.00022e4 +.0000328937e8 +obase=0 +0 +1 +10 +-289 +2894 +-89434 +894370 +-1239839 +28931708 +-8052098.8029731809 +.1 +-.01 +.001 +-.00038 +.0000483 +-.0002894378190 +.2893712083 diff --git a/tests/bc/scientific_results.txt b/tests/bc/scientific_results.txt new file mode 100644 index 000000000000..557fcf61fe5e --- /dev/null +++ b/tests/bc/scientific_results.txt @@ -0,0 +1,50 @@ +0 +0 +0 +0 +0 +1 +-10 +1000000000 +-1000000000000000000000 +.1 +-.01 +.00001 +492837 +-328971028000000000000 +6200 +-828.9371 +598172809.37 +-.328977 +.000000000000000000088927891 +-.000798239 +.00044892 +-18937 +1982730000000000 +-1.8927 +.28937 +-.0891072 +.28972 +-.0891273 +8.928397 +-29.83172 +.22 +-2.2 +3289.37 +0 +1e0 +1.0e1 +-2.89e2 +2.894e3 +-8.9434e4 +8.94370e5 +-1.239839e6 +2.8931708e7 +-8.0520988029731809e6 +1e-1 +-1e-2 +1e-3 +-3.8e-4 +4.83e-5 +-2.894378190e-4 +2.893712083e-1 diff --git a/tests/bc/scripts/add.bc b/tests/bc/scripts/add.bc new file mode 100644 index 000000000000..03f8581251be --- /dev/null +++ b/tests/bc/scripts/add.bc @@ -0,0 +1,17 @@ +#! /usr/bin/bc -lq + +scale = 20 +x = 1234567890 / scale +len = length(x) + 1 + scale +len *= 2 + +for (i = 0; i <= len; ++i) { + a[i] = x * (10^i) + a[i] +} + +for (i = 1; i <= 10000; ++i) { + for (j = 0; j < len; ++j) { + a[0] + a[j] + } +} diff --git a/tests/bc/scripts/array.bc b/tests/bc/scripts/array.bc new file mode 100755 index 000000000000..dac232804914 --- /dev/null +++ b/tests/bc/scripts/array.bc @@ -0,0 +1,60 @@ +#! /usr/bin/bc -q + +define z(a[]) { + for (i = 0; i < l; ++i) { + a[i] + } +} + +define x(a[]) { + + # Test for separate vars and arrays. + auto a + + for (a = 0; a < l; ++a) { + a[a] = -a + } + + z(a[]) +} + +define g(x[], y[]) { + return x[0] - y[0] +} + +define h(y[], x[]) { + return g(x[], y[]) +} + +define m(*x[], *y[]) { + return x[0] / y[0] +} + +define n(*y[], *x[]) { + return m(x[], y[]) +} + +for (i = 0; i < 101; ++i) { + a[i] = i +} + +a[104] = 204 + +l = length(a[]) + +for (i = 0; i <= l; ++i) { + a[i] +} + +z(a[]) +x(a[]) +z(a[]) +l + +x[0] = 5 +y[0] = 4 + +h(x[], y[]) +n(x[], y[]) + +halt diff --git a/tests/bc/scripts/array.txt b/tests/bc/scripts/array.txt new file mode 100644 index 000000000000..2e30ae5899e8 --- /dev/null +++ b/tests/bc/scripts/array.txt @@ -0,0 +1,428 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +0 +0 +0 +204 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +0 +0 +0 +204 +0 +0 +-1 +-2 +-3 +-4 +-5 +-6 +-7 +-8 +-9 +-10 +-11 +-12 +-13 +-14 +-15 +-16 +-17 +-18 +-19 +-20 +-21 +-22 +-23 +-24 +-25 +-26 +-27 +-28 +-29 +-30 +-31 +-32 +-33 +-34 +-35 +-36 +-37 +-38 +-39 +-40 +-41 +-42 +-43 +-44 +-45 +-46 +-47 +-48 +-49 +-50 +-51 +-52 +-53 +-54 +-55 +-56 +-57 +-58 +-59 +-60 +-61 +-62 +-63 +-64 +-65 +-66 +-67 +-68 +-69 +-70 +-71 +-72 +-73 +-74 +-75 +-76 +-77 +-78 +-79 +-80 +-81 +-82 +-83 +-84 +-85 +-86 +-87 +-88 +-89 +-90 +-91 +-92 +-93 +-94 +-95 +-96 +-97 +-98 +-99 +-100 +-101 +-102 +-103 +-104 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +0 +0 +0 +204 +0 +105 +-1 +.80000000000000000000 diff --git a/tests/bc/scripts/atan.bc b/tests/bc/scripts/atan.bc new file mode 100755 index 000000000000..9d47f415c5b5 --- /dev/null +++ b/tests/bc/scripts/atan.bc @@ -0,0 +1,11 @@ +#! /usr/bin/bc -q + +for (i = 1; i <= 100; ++i) { + print "scale = ", i, "\n" + print "a(.267)\n" + print "a(1)\n" +} + +print "halt\n" + +halt diff --git a/tests/bc/scripts/atan.txt b/tests/bc/scripts/atan.txt new file mode 100644 index 000000000000..f4383f544ec6 --- /dev/null +++ b/tests/bc/scripts/atan.txt @@ -0,0 +1,301 @@ +scale = 1 +a(.267) +a(1) +scale = 2 +a(.267) +a(1) +scale = 3 +a(.267) +a(1) +scale = 4 +a(.267) +a(1) +scale = 5 +a(.267) +a(1) +scale = 6 +a(.267) +a(1) +scale = 7 +a(.267) +a(1) +scale = 8 +a(.267) +a(1) +scale = 9 +a(.267) +a(1) +scale = 10 +a(.267) +a(1) +scale = 11 +a(.267) +a(1) +scale = 12 +a(.267) +a(1) +scale = 13 +a(.267) +a(1) +scale = 14 +a(.267) +a(1) +scale = 15 +a(.267) +a(1) +scale = 16 +a(.267) +a(1) +scale = 17 +a(.267) +a(1) +scale = 18 +a(.267) +a(1) +scale = 19 +a(.267) +a(1) +scale = 20 +a(.267) +a(1) +scale = 21 +a(.267) +a(1) +scale = 22 +a(.267) +a(1) +scale = 23 +a(.267) +a(1) +scale = 24 +a(.267) +a(1) +scale = 25 +a(.267) +a(1) +scale = 26 +a(.267) +a(1) +scale = 27 +a(.267) +a(1) +scale = 28 +a(.267) +a(1) +scale = 29 +a(.267) +a(1) +scale = 30 +a(.267) +a(1) +scale = 31 +a(.267) +a(1) +scale = 32 +a(.267) +a(1) +scale = 33 +a(.267) +a(1) +scale = 34 +a(.267) +a(1) +scale = 35 +a(.267) +a(1) +scale = 36 +a(.267) +a(1) +scale = 37 +a(.267) +a(1) +scale = 38 +a(.267) +a(1) +scale = 39 +a(.267) +a(1) +scale = 40 +a(.267) +a(1) +scale = 41 +a(.267) +a(1) +scale = 42 +a(.267) +a(1) +scale = 43 +a(.267) +a(1) +scale = 44 +a(.267) +a(1) +scale = 45 +a(.267) +a(1) +scale = 46 +a(.267) +a(1) +scale = 47 +a(.267) +a(1) +scale = 48 +a(.267) +a(1) +scale = 49 +a(.267) +a(1) +scale = 50 +a(.267) +a(1) +scale = 51 +a(.267) +a(1) +scale = 52 +a(.267) +a(1) +scale = 53 +a(.267) +a(1) +scale = 54 +a(.267) +a(1) +scale = 55 +a(.267) +a(1) +scale = 56 +a(.267) +a(1) +scale = 57 +a(.267) +a(1) +scale = 58 +a(.267) +a(1) +scale = 59 +a(.267) +a(1) +scale = 60 +a(.267) +a(1) +scale = 61 +a(.267) +a(1) +scale = 62 +a(.267) +a(1) +scale = 63 +a(.267) +a(1) +scale = 64 +a(.267) +a(1) +scale = 65 +a(.267) +a(1) +scale = 66 +a(.267) +a(1) +scale = 67 +a(.267) +a(1) +scale = 68 +a(.267) +a(1) +scale = 69 +a(.267) +a(1) +scale = 70 +a(.267) +a(1) +scale = 71 +a(.267) +a(1) +scale = 72 +a(.267) +a(1) +scale = 73 +a(.267) +a(1) +scale = 74 +a(.267) +a(1) +scale = 75 +a(.267) +a(1) +scale = 76 +a(.267) +a(1) +scale = 77 +a(.267) +a(1) +scale = 78 +a(.267) +a(1) +scale = 79 +a(.267) +a(1) +scale = 80 +a(.267) +a(1) +scale = 81 +a(.267) +a(1) +scale = 82 +a(.267) +a(1) +scale = 83 +a(.267) +a(1) +scale = 84 +a(.267) +a(1) +scale = 85 +a(.267) +a(1) +scale = 86 +a(.267) +a(1) +scale = 87 +a(.267) +a(1) +scale = 88 +a(.267) +a(1) +scale = 89 +a(.267) +a(1) +scale = 90 +a(.267) +a(1) +scale = 91 +a(.267) +a(1) +scale = 92 +a(.267) +a(1) +scale = 93 +a(.267) +a(1) +scale = 94 +a(.267) +a(1) +scale = 95 +a(.267) +a(1) +scale = 96 +a(.267) +a(1) +scale = 97 +a(.267) +a(1) +scale = 98 +a(.267) +a(1) +scale = 99 +a(.267) +a(1) +scale = 100 +a(.267) +a(1) +halt diff --git a/tests/bc/scripts/bessel.bc b/tests/bc/scripts/bessel.bc new file mode 100755 index 000000000000..b82eee30d19e --- /dev/null +++ b/tests/bc/scripts/bessel.bc @@ -0,0 +1,43 @@ +#! /usr/bin/bc -q + +t[0] = 0 +t[1] = 0.5 +t[2] = 1 +t[3] = 1.5 +t[4] = 1.74 +t[5] = 2 +t[6] = 3.2345 +t[7] = 100 +t[8] = -0.5 +t[9] = -1 +t[10] = -1.5 +t[11] = -1.74 +t[12] = -2 +t[13] = -3.2345 +t[14] = -100 + +l = 15 + +a[0] = t[0] + +for (i = 1; i < l; ++i) { + a[i * 2 - 1] = t[i] + a[i * 2] = -t[i] +} + +l *= 2 +l -= 1 + +for (i = 0; i < l; ++i) { + for (j = 0; j < l; ++j) { + print "j(", a[i], ", ", a[j], ")\n" + } +} + +# These are specific tests that bc could not pass at one time. +print "j(3, 0.75)\n" +print "scale = 0; j(40, 0.75)\n" + +print "halt\n" + +halt diff --git a/tests/bc/scripts/divide.bc b/tests/bc/scripts/divide.bc new file mode 100644 index 000000000000..8527ffc35666 --- /dev/null +++ b/tests/bc/scripts/divide.bc @@ -0,0 +1,22 @@ +#! /usr/bin/bc -lq + +scale = 20 +x = 1234567890 * 10^(-scale) +len = 1 + 2 * scale + +x +scale += 10 + +for (i = 0; i <= len; ++i) { + a[i] = x * (10^i) + a[i] +} + +for (i = 1; i <= 10000; ++i) { + for (j = 0; j < len; ++j) { + a[0] / a[j] + (a[0] * i) / a[j] + a[0] / (a[j] * i) + (a[0] * i) / (a[j] * i) + } +} diff --git a/tests/bc/scripts/functions.bc b/tests/bc/scripts/functions.bc new file mode 100644 index 000000000000..80d6d1623d8d --- /dev/null +++ b/tests/bc/scripts/functions.bc @@ -0,0 +1,7 @@ +e(0.5) + +define e(x) { + return x +} + +e(0.5) diff --git a/tests/bc/scripts/functions.txt b/tests/bc/scripts/functions.txt new file mode 100644 index 000000000000..6e5975cb9d67 --- /dev/null +++ b/tests/bc/scripts/functions.txt @@ -0,0 +1,2 @@ +1.64872127070012814684 +.5 diff --git a/tests/bc/scripts/globals.bc b/tests/bc/scripts/globals.bc new file mode 100755 index 000000000000..e9a0c6dbacd3 --- /dev/null +++ b/tests/bc/scripts/globals.bc @@ -0,0 +1,23 @@ +#! /usr/bin/bc -gq + +define i(x) { + ibase=x + return ibase +} + +define o(x) { + obase=x + return obase +} + +define r(x) { + scale=x + return scale +} + +i(11) +ibase +o(12) +obase +r(15) +scale diff --git a/tests/bc/scripts/globals.txt b/tests/bc/scripts/globals.txt new file mode 100644 index 000000000000..e7faccdfed0b --- /dev/null +++ b/tests/bc/scripts/globals.txt @@ -0,0 +1,6 @@ +11 +10 +12 +10 +15 +20 diff --git a/tests/bc/scripts/len.bc b/tests/bc/scripts/len.bc new file mode 100644 index 000000000000..ec931f2386a5 --- /dev/null +++ b/tests/bc/scripts/len.bc @@ -0,0 +1,48 @@ +define fast_gcd(a, b) { + + if (a == b) return a; + if (a > b) return fast_gcd(a - b, b) + + return fast_gcd(a, b - a); +} + +define void r_reduce(*r[]) { + + auto g,s; + + if (length(r[]) != 2) sqrt(-1); + if (scale(r[0])) 2^r[0]; + if (scale(r[1])) 2^r[1]; + + if (r[0] >= 0 && r[1] >= 0) g = fast_gcd(r[0], r[1]); + else g = gcd(r[0], r[1]); + + s = scale; + scale = 0; + + r[0] /= g; + r[1] /= g; + + scale = s; +} + +define void r_init(*r[], a, b) { + r[0] = a; + r[1] = b; + r_reduce(r[]); +} + +define void r_initi(*r[], i, a, b) { + + length(r[]); + + r[0] = i * b + a; + r[1] = b; + + length(r[]); + + r_reduce(r[]); +} + +length(a[]) +r_initi(a[], 5, 63, 94); diff --git a/tests/bc/scripts/len.txt b/tests/bc/scripts/len.txt new file mode 100644 index 000000000000..33280629d45d --- /dev/null +++ b/tests/bc/scripts/len.txt @@ -0,0 +1,3 @@ +1 +1 +2 diff --git a/tests/bc/scripts/multiply.bc b/tests/bc/scripts/multiply.bc new file mode 100644 index 000000000000..2eb975aa68c4 --- /dev/null +++ b/tests/bc/scripts/multiply.bc @@ -0,0 +1,19 @@ +#! /usr/bin/bc -lq + +scale = 20 +x = 1234567890 / scale +len = length(x) + 1 + scale + +for (i = 0; i <= len; ++i) { + a[i] = x * (10^i) + a[i] +} + +for (i = 1; i <= 10000; ++i) { + for (j = 0; j < len; ++j) { + a[0] * a[j] + (a[0] * i) * a[j] + a[0] * (a[j] * i) + (a[0] * i) * (a[j] * i) + } +} diff --git a/tests/bc/scripts/parse.bc b/tests/bc/scripts/parse.bc new file mode 100755 index 000000000000..179daf116efd --- /dev/null +++ b/tests/bc/scripts/parse.bc @@ -0,0 +1,20 @@ +#! /usr/bin/bc -q + +for (b = 2; b <= 16; ++b) { + if (b == 10) continue + obase = 10 + print "ibase = A; ibase = ", b, "\n" + print "\qibase = \q\n" + b + obase = b + for (i = 0; i <= 4096; ++i) { + i + print "0.", i, "\n" + print ".", i, "\n" + print "1.", i, "\n" + print i, ".", "\n" + print i, ".", i, "\n" + } +} + +halt diff --git a/tests/bc/scripts/print.bc b/tests/bc/scripts/print.bc new file mode 100755 index 000000000000..9530cbdb3fc2 --- /dev/null +++ b/tests/bc/scripts/print.bc @@ -0,0 +1,25 @@ +#! /usr/bin/bc -q + +for (b = 2; b <= 100; ++b) { + + if (b == 10) continue + + s = b * b + + print "obase = ", b, "\n" + print "\qobase = \q\n" + b + + for (i = 0; i <= s; ++i) { + i + print "0.", i, "\n" + print ".", i, "\n" + print "1.", i, "\n" + print i, ".", "\n" + print i, ".", i, "\n" + } + + 2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460 +} + +halt diff --git a/tests/bc/scripts/rand.bc b/tests/bc/scripts/rand.bc new file mode 100644 index 000000000000..54173c713612 --- /dev/null +++ b/tests/bc/scripts/rand.bc @@ -0,0 +1,97 @@ +#! /usr/bin/bc + +define x(x) { + seed = x + seed@20 + return seed +} + +define y(x) { + auto s + seed@20 + s = x(x) + seed@20 + return s +} + +define void u(x) { + seed = x + seed@20 +} + +define void v(x) { + u(x) + seed@20 +} + +define g(x) { + auto s + s = irand(x) + s < x + return seed +} + +define h(x) { + auto s + s = g(x) + s == seed + return s +} + +define j(x) { + auto s, r + seed@20 + s = seed + r = rand() + seed = x + s != seed + return rand() +} + +define k(x) { + auto s, r + s = seed + seed@20 + r = j(x) + s != seed + seed = x + rand() == r + return r +} + +define m(*a[]) { + auto i + seed = seed + for (i = 0; i < 100; ++i) { + a[i] = rand() + } + return seed +} + +v(50.5) +seed@20 + +s = y(75.25) +s@20 +seed@20 + +r = rand() +i = irand(r) + +i < r + +s = h(maxrand() ^ 4) +s == seed + +seed = 2398.0625 +r = k(38.45) +seed = 38.45 +r == rand() + +s = m(a[]) + +for (i = 0; i < 100; ++i) { + rand() == a[i] +} + +s == seed diff --git a/tests/bc/scripts/rand.txt b/tests/bc/scripts/rand.txt new file mode 100644 index 000000000000..886daca15ec0 --- /dev/null +++ b/tests/bc/scripts/rand.txt @@ -0,0 +1,119 @@ +50.50000000000000000000 +50.50000000000000000000 +50.50000000000000000000 +50.50000000000000000000 +75.25000000000000000000 +50.50000000000000000000 +75.25000000000000000000 +50.50000000000000000000 +1 +1 +1 +1 +2398.06250000000000000000 +2398.06250000000000000000 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/bc/scripts/references.bc b/tests/bc/scripts/references.bc new file mode 100755 index 000000000000..8188f17aa017 --- /dev/null +++ b/tests/bc/scripts/references.bc @@ -0,0 +1,408 @@ +#! /usr/bin/bc -q + +define printarray(a[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a[i] + } +} + +define a2(a[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a[i] = a[i] * a[i] + } + + printarray(a[], len) +} + +define a4(a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = a__[i] * a__[i] + } + + printarray(a__[], len) +} + +define a6(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = a__[i] * a__[i] + } + + printarray(a__[], len) +} + +define a1(*a[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a[i] = i + } + + a2(a[], len) + + printarray(a[], len) +} + +define a3(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = i + } + + a4(a__[], len) + + printarray(a__[], len) +} + +define a5(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = i + } + + a2(a__[], len) + + printarray(a__[], len) +} + +define a7(*a__[], len) { + + auto i + + for (i = 0; i < len; ++i) { + a__[i] = i + } + + a6(a__[], len) + + printarray(a__[], len) +} + +len = 16 + +a1(a[], len) +printarray(a[], len) +a3(a[], len) +printarray(a[], len) +a5(a[], len) +printarray(a[], len) +a7(a[], len) +printarray(a[], len) + +a1(b[], len) +printarray(b[], len) +a3(b[], len) +printarray(b[], len) +a5(b[], len) +printarray(b[], len) +a7(b[], len) +printarray(b[], len) + +a1[0] = 0 +a2[0] = 0 +a3[0] = 0 +a4[0] = 0 +a5[0] = 0 +a6[0] = 0 +a7[0] = 0 +a8[0] = 0 +a9[0] = 0 +a10[0] = 0 +a11[0] = 0 +a12[0] = 0 +a13[0] = 0 +a14[0] = 0 +a15[0] = 0 +a16[0] = 0 +a17[0] = 0 +a18[0] = 0 +a19[0] = 0 +a20[0] = 0 +a21[0] = 0 +a22[0] = 0 +a23[0] = 0 +a24[0] = 0 +a25[0] = 0 +a26[0] = 0 +a27[0] = 0 +a28[0] = 0 +a29[0] = 0 +a30[0] = 0 +a31[0] = 0 +a32[0] = 0 +a33[0] = 0 +a34[0] = 0 +a35[0] = 0 +a36[0] = 0 +a37[0] = 0 +a38[0] = 0 +a39[0] = 0 +a40[0] = 0 +a41[0] = 0 +a42[0] = 0 +a43[0] = 0 +a44[0] = 0 +a45[0] = 0 +a46[0] = 0 +a47[0] = 0 +a48[0] = 0 +a49[0] = 0 +a50[0] = 0 +a51[0] = 0 +a52[0] = 0 +a53[0] = 0 +a54[0] = 0 +a55[0] = 0 +a56[0] = 0 +a57[0] = 0 +a58[0] = 0 +a59[0] = 0 +a60[0] = 0 +a61[0] = 0 +a62[0] = 0 +a63[0] = 0 +a64[0] = 0 +a65[0] = 0 +a66[0] = 0 +a67[0] = 0 +a68[0] = 0 +a69[0] = 0 +a70[0] = 0 +a71[0] = 0 +a72[0] = 0 +a73[0] = 0 +a74[0] = 0 +a75[0] = 0 +a76[0] = 0 +a77[0] = 0 +a78[0] = 0 +a79[0] = 0 +a80[0] = 0 +a81[0] = 0 +a82[0] = 0 +a83[0] = 0 +a84[0] = 0 +a85[0] = 0 +a86[0] = 0 +a87[0] = 0 +a88[0] = 0 +a89[0] = 0 +a90[0] = 0 +a91[0] = 0 +a92[0] = 0 +a93[0] = 0 +a94[0] = 0 +a95[0] = 0 +a96[0] = 0 +a97[0] = 0 +a98[0] = 0 +a99[0] = 0 +a100[0] = 0 +a101[0] = 0 +a102[0] = 0 +a103[0] = 0 +a104[0] = 0 +a105[0] = 0 +a106[0] = 0 +a107[0] = 0 +a108[0] = 0 +a109[0] = 0 +a110[0] = 0 +a111[0] = 0 +a112[0] = 0 +a113[0] = 0 +a114[0] = 0 +a115[0] = 0 +a116[0] = 0 +a117[0] = 0 +a118[0] = 0 +a119[0] = 0 +a120[0] = 0 +a121[0] = 0 +a122[0] = 0 +a123[0] = 0 +a124[0] = 0 +a125[0] = 0 +a126[0] = 0 +a127[0] = 0 +a128[0] = 0 +a129[0] = 0 +a130[0] = 0 +a131[0] = 0 +a132[0] = 0 +a133[0] = 0 +a134[0] = 0 +a135[0] = 0 +a136[0] = 0 +a137[0] = 0 +a138[0] = 0 +a139[0] = 0 +a140[0] = 0 +a141[0] = 0 +a142[0] = 0 +a143[0] = 0 +a144[0] = 0 +a145[0] = 0 +a146[0] = 0 +a147[0] = 0 +a148[0] = 0 +a149[0] = 0 +a150[0] = 0 +a151[0] = 0 +a152[0] = 0 +a153[0] = 0 +a154[0] = 0 +a155[0] = 0 +a156[0] = 0 +a157[0] = 0 +a158[0] = 0 +a159[0] = 0 +a160[0] = 0 +a161[0] = 0 +a162[0] = 0 +a163[0] = 0 +a164[0] = 0 +a165[0] = 0 +a166[0] = 0 +a167[0] = 0 +a168[0] = 0 +a169[0] = 0 +a170[0] = 0 +a171[0] = 0 +a172[0] = 0 +a173[0] = 0 +a174[0] = 0 +a175[0] = 0 +a176[0] = 0 +a177[0] = 0 +a178[0] = 0 +a179[0] = 0 +a180[0] = 0 +a181[0] = 0 +a182[0] = 0 +a183[0] = 0 +a184[0] = 0 +a185[0] = 0 +a186[0] = 0 +a187[0] = 0 +a188[0] = 0 +a189[0] = 0 +a190[0] = 0 +a191[0] = 0 +a192[0] = 0 +a193[0] = 0 +a194[0] = 0 +a195[0] = 0 +a196[0] = 0 +a197[0] = 0 +a198[0] = 0 +a199[0] = 0 +a200[0] = 0 +a201[0] = 0 +a202[0] = 0 +a203[0] = 0 +a204[0] = 0 +a205[0] = 0 +a206[0] = 0 +a207[0] = 0 +a208[0] = 0 +a209[0] = 0 +a210[0] = 0 +a211[0] = 0 +a212[0] = 0 +a213[0] = 0 +a214[0] = 0 +a215[0] = 0 +a216[0] = 0 +a217[0] = 0 +a218[0] = 0 +a219[0] = 0 +a220[0] = 0 +a221[0] = 0 +a222[0] = 0 +a223[0] = 0 +a224[0] = 0 +a225[0] = 0 +a226[0] = 0 +a227[0] = 0 +a228[0] = 0 +a229[0] = 0 +a230[0] = 0 +a231[0] = 0 +a232[0] = 0 +a233[0] = 0 +a234[0] = 0 +a235[0] = 0 +a236[0] = 0 +a237[0] = 0 +a238[0] = 0 +a239[0] = 0 +a240[0] = 0 +a241[0] = 0 +a242[0] = 0 +a243[0] = 0 +a244[0] = 0 +a245[0] = 0 +a246[0] = 0 +a247[0] = 0 +a248[0] = 0 +a249[0] = 0 +a250[0] = 0 +a251[0] = 0 +a252[0] = 0 +a253[0] = 0 +a254[0] = 0 +a255[0] = 0 +a256[0] = 0 + +a1(a253[], len) +printarray(a253[], len) +a3(a253[], len) +printarray(a253[], len) +a5(a253[], len) +printarray(a253[], len) +a7(a253[], len) +printarray(a253[], len) + +a1(a254[], len) +printarray(a254[], len) +a3(a254[], len) +printarray(a254[], len) +a5(a254[], len) +printarray(a254[], len) +a7(a254[], len) +printarray(a254[], len) + +a1(a255[], len) +printarray(a255[], len) +a3(a255[], len) +printarray(a255[], len) +a5(a255[], len) +printarray(a255[], len) +a7(a255[], len) +printarray(a255[], len) + +a1(a256[], len) +printarray(a256[], len) +a3(a256[], len) +printarray(a256[], len) +a5(a256[], len) +printarray(a256[], len) +a7(a256[], len) +printarray(a256[], len) diff --git a/tests/bc/scripts/references.txt b/tests/bc/scripts/references.txt new file mode 100644 index 000000000000..1e5f65faf75c --- /dev/null +++ b/tests/bc/scripts/references.txt @@ -0,0 +1,1272 @@ +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 +0 +0 +1 +4 +9 +16 +25 +36 +49 +64 +81 +100 +121 +144 +169 +196 +225 +0 diff --git a/tests/bc/scripts/screen.bc b/tests/bc/scripts/screen.bc new file mode 100755 index 000000000000..ea36b5ff4bea --- /dev/null +++ b/tests/bc/scripts/screen.bc @@ -0,0 +1,20 @@ +#! /usr/bin/bc -q + +define a(i, j) { + scale = 0 + if(i % 2 == 0) return i; + if(j - i >= 0.5) return i + 1; + return i - 1; +} + +define x(w, h, n) { + scale = 20 + f = w / n + scale = 0 + i = h / f + scale = 1 + j = h / f + return a(i, j); +} + +x(720, 576, 600) diff --git a/tests/bc/scripts/screen.txt b/tests/bc/scripts/screen.txt new file mode 100644 index 000000000000..36e082614b99 --- /dev/null +++ b/tests/bc/scripts/screen.txt @@ -0,0 +1 @@ +480 diff --git a/tests/bc/scripts/subtract.bc b/tests/bc/scripts/subtract.bc new file mode 100644 index 000000000000..81ac895c49ed --- /dev/null +++ b/tests/bc/scripts/subtract.bc @@ -0,0 +1,17 @@ +#! /usr/bin/bc -lq + +scale = 20 +x = 1234567890 / scale +len = length(x) + 1 + scale +len *= 2 + +for (i = 0; i <= len; ++i) { + a[i] = x * (10^i) + a[i] +} + +for (i = 1; i <= 10000; ++i) { + for (j = 0; j < len; ++j) { + a[0] - a[j] + } +} diff --git a/tests/bc/shift.txt b/tests/bc/shift.txt new file mode 100644 index 000000000000..40b973358f96 --- /dev/null +++ b/tests/bc/shift.txt @@ -0,0 +1,5341 @@ +0 << 0 +1 << 0 +2 << 0 +0.0023896 << 0 +1.298346 << 0 +2.00000000 << 0 +0.0023896 << 3 +1.298346 << 4 +2.00000000 << 5 +x = 89136.892348976 +x <<= 7 +x +x = 1892634051829351283289298 +x <<= 24 +x +0 >> 0 +1 >> 0 +2 >> 0 +0.0023896 >> 0 +1.298346 >> 0 +2.00000000 >> 0 +0.0023896 >> 3 +1.298346 >> 4 +2.00000000 >> 5 +x = 89136.892348976 +x >>= 7 +x +x = 1892634051829351283289298 +x >>= 24 +x +-1 << 0 +-2 << 0 +-0.0023896 << 0 +-1.298346 << 0 +-2.00000000 << 0 +-0.0023896 << 3 +-1.298346 << 4 +-2.00000000 << 5 +x = -89136.892348976 +x <<= 7 +x +x = -1892634051829351283289298 +x <<= 24 +x +-1 >> 0 +-2 >> 0 +-0.0023896 >> 0 +-1.298346 >> 0 +-2.00000000 >> 0 +-0.0023896 >> 3 +-1.298346 >> 4 +-2.00000000 >> 5 +x = -89136.892348976 +x >>= 7 +x +-x +x = -1892634051829351283289298 +x >>= 24 +x +-x +(0 >> 12) / 2 +0 << 0 +0 << 1 +0 << 2 +0 << 3 +0 << 4 +0 << 5 +0 << 6 +0 << 7 +0 << 8 +0 << 9 +0 << 10 +0 << 11 +0 << 12 +0 << 13 +0 << 14 +0 << 15 +0 << 16 +0 << 17 +0 << 18 +0 << 19 +0.1 << 0 +0.1 << 1 +0.1 << 2 +0.1 << 3 +0.1 << 4 +0.1 << 5 +0.1 << 6 +0.1 << 7 +0.1 << 8 +0.1 << 9 +0.1 << 10 +0.1 << 11 +0.1 << 12 +0.1 << 13 +0.1 << 14 +0.1 << 15 +0.1 << 16 +0.1 << 17 +0.1 << 18 +0.1 << 19 +0.01 << 0 +0.01 << 1 +0.01 << 2 +0.01 << 3 +0.01 << 4 +0.01 << 5 +0.01 << 6 +0.01 << 7 +0.01 << 8 +0.01 << 9 +0.01 << 10 +0.01 << 11 +0.01 << 12 +0.01 << 13 +0.01 << 14 +0.01 << 15 +0.01 << 16 +0.01 << 17 +0.01 << 18 +0.01 << 19 +0.001 << 0 +0.001 << 1 +0.001 << 2 +0.001 << 3 +0.001 << 4 +0.001 << 5 +0.001 << 6 +0.001 << 7 +0.001 << 8 +0.001 << 9 +0.001 << 10 +0.001 << 11 +0.001 << 12 +0.001 << 13 +0.001 << 14 +0.001 << 15 +0.001 << 16 +0.001 << 17 +0.001 << 18 +0.001 << 19 +0.0001 << 0 +0.0001 << 1 +0.0001 << 2 +0.0001 << 3 +0.0001 << 4 +0.0001 << 5 +0.0001 << 6 +0.0001 << 7 +0.0001 << 8 +0.0001 << 9 +0.0001 << 10 +0.0001 << 11 +0.0001 << 12 +0.0001 << 13 +0.0001 << 14 +0.0001 << 15 +0.0001 << 16 +0.0001 << 17 +0.0001 << 18 +0.0001 << 19 +0.00001 << 0 +0.00001 << 1 +0.00001 << 2 +0.00001 << 3 +0.00001 << 4 +0.00001 << 5 +0.00001 << 6 +0.00001 << 7 +0.00001 << 8 +0.00001 << 9 +0.00001 << 10 +0.00001 << 11 +0.00001 << 12 +0.00001 << 13 +0.00001 << 14 +0.00001 << 15 +0.00001 << 16 +0.00001 << 17 +0.00001 << 18 +0.00001 << 19 +0.000001 << 0 +0.000001 << 1 +0.000001 << 2 +0.000001 << 3 +0.000001 << 4 +0.000001 << 5 +0.000001 << 6 +0.000001 << 7 +0.000001 << 8 +0.000001 << 9 +0.000001 << 10 +0.000001 << 11 +0.000001 << 12 +0.000001 << 13 +0.000001 << 14 +0.000001 << 15 +0.000001 << 16 +0.000001 << 17 +0.000001 << 18 +0.000001 << 19 +0.0000001 << 0 +0.0000001 << 1 +0.0000001 << 2 +0.0000001 << 3 +0.0000001 << 4 +0.0000001 << 5 +0.0000001 << 6 +0.0000001 << 7 +0.0000001 << 8 +0.0000001 << 9 +0.0000001 << 10 +0.0000001 << 11 +0.0000001 << 12 +0.0000001 << 13 +0.0000001 << 14 +0.0000001 << 15 +0.0000001 << 16 +0.0000001 << 17 +0.0000001 << 18 +0.0000001 << 19 +0.00000001 << 0 +0.00000001 << 1 +0.00000001 << 2 +0.00000001 << 3 +0.00000001 << 4 +0.00000001 << 5 +0.00000001 << 6 +0.00000001 << 7 +0.00000001 << 8 +0.00000001 << 9 +0.00000001 << 10 +0.00000001 << 11 +0.00000001 << 12 +0.00000001 << 13 +0.00000001 << 14 +0.00000001 << 15 +0.00000001 << 16 +0.00000001 << 17 +0.00000001 << 18 +0.00000001 << 19 +0.000000001 << 0 +0.000000001 << 1 +0.000000001 << 2 +0.000000001 << 3 +0.000000001 << 4 +0.000000001 << 5 +0.000000001 << 6 +0.000000001 << 7 +0.000000001 << 8 +0.000000001 << 9 +0.000000001 << 10 +0.000000001 << 11 +0.000000001 << 12 +0.000000001 << 13 +0.000000001 << 14 +0.000000001 << 15 +0.000000001 << 16 +0.000000001 << 17 +0.000000001 << 18 +0.000000001 << 19 +0.0000000001 << 0 +0.0000000001 << 1 +0.0000000001 << 2 +0.0000000001 << 3 +0.0000000001 << 4 +0.0000000001 << 5 +0.0000000001 << 6 +0.0000000001 << 7 +0.0000000001 << 8 +0.0000000001 << 9 +0.0000000001 << 10 +0.0000000001 << 11 +0.0000000001 << 12 +0.0000000001 << 13 +0.0000000001 << 14 +0.0000000001 << 15 +0.0000000001 << 16 +0.0000000001 << 17 +0.0000000001 << 18 +0.0000000001 << 19 +1 << 0 +1 << 1 +1 << 2 +1 << 3 +1 << 4 +1 << 5 +1 << 6 +1 << 7 +1 << 8 +1 << 9 +1 << 10 +1 << 11 +1 << 12 +1 << 13 +1 << 14 +1 << 15 +1 << 16 +1 << 17 +1 << 18 +1 << 19 +1.1 << 0 +1.1 << 1 +1.1 << 2 +1.1 << 3 +1.1 << 4 +1.1 << 5 +1.1 << 6 +1.1 << 7 +1.1 << 8 +1.1 << 9 +1.1 << 10 +1.1 << 11 +1.1 << 12 +1.1 << 13 +1.1 << 14 +1.1 << 15 +1.1 << 16 +1.1 << 17 +1.1 << 18 +1.1 << 19 +1.01 << 0 +1.01 << 1 +1.01 << 2 +1.01 << 3 +1.01 << 4 +1.01 << 5 +1.01 << 6 +1.01 << 7 +1.01 << 8 +1.01 << 9 +1.01 << 10 +1.01 << 11 +1.01 << 12 +1.01 << 13 +1.01 << 14 +1.01 << 15 +1.01 << 16 +1.01 << 17 +1.01 << 18 +1.01 << 19 +1.001 << 0 +1.001 << 1 +1.001 << 2 +1.001 << 3 +1.001 << 4 +1.001 << 5 +1.001 << 6 +1.001 << 7 +1.001 << 8 +1.001 << 9 +1.001 << 10 +1.001 << 11 +1.001 << 12 +1.001 << 13 +1.001 << 14 +1.001 << 15 +1.001 << 16 +1.001 << 17 +1.001 << 18 +1.001 << 19 +1.0001 << 0 +1.0001 << 1 +1.0001 << 2 +1.0001 << 3 +1.0001 << 4 +1.0001 << 5 +1.0001 << 6 +1.0001 << 7 +1.0001 << 8 +1.0001 << 9 +1.0001 << 10 +1.0001 << 11 +1.0001 << 12 +1.0001 << 13 +1.0001 << 14 +1.0001 << 15 +1.0001 << 16 +1.0001 << 17 +1.0001 << 18 +1.0001 << 19 +1.00001 << 0 +1.00001 << 1 +1.00001 << 2 +1.00001 << 3 +1.00001 << 4 +1.00001 << 5 +1.00001 << 6 +1.00001 << 7 +1.00001 << 8 +1.00001 << 9 +1.00001 << 10 +1.00001 << 11 +1.00001 << 12 +1.00001 << 13 +1.00001 << 14 +1.00001 << 15 +1.00001 << 16 +1.00001 << 17 +1.00001 << 18 +1.00001 << 19 +1.000001 << 0 +1.000001 << 1 +1.000001 << 2 +1.000001 << 3 +1.000001 << 4 +1.000001 << 5 +1.000001 << 6 +1.000001 << 7 +1.000001 << 8 +1.000001 << 9 +1.000001 << 10 +1.000001 << 11 +1.000001 << 12 +1.000001 << 13 +1.000001 << 14 +1.000001 << 15 +1.000001 << 16 +1.000001 << 17 +1.000001 << 18 +1.000001 << 19 +1.0000001 << 0 +1.0000001 << 1 +1.0000001 << 2 +1.0000001 << 3 +1.0000001 << 4 +1.0000001 << 5 +1.0000001 << 6 +1.0000001 << 7 +1.0000001 << 8 +1.0000001 << 9 +1.0000001 << 10 +1.0000001 << 11 +1.0000001 << 12 +1.0000001 << 13 +1.0000001 << 14 +1.0000001 << 15 +1.0000001 << 16 +1.0000001 << 17 +1.0000001 << 18 +1.0000001 << 19 +1.00000001 << 0 +1.00000001 << 1 +1.00000001 << 2 +1.00000001 << 3 +1.00000001 << 4 +1.00000001 << 5 +1.00000001 << 6 +1.00000001 << 7 +1.00000001 << 8 +1.00000001 << 9 +1.00000001 << 10 +1.00000001 << 11 +1.00000001 << 12 +1.00000001 << 13 +1.00000001 << 14 +1.00000001 << 15 +1.00000001 << 16 +1.00000001 << 17 +1.00000001 << 18 +1.00000001 << 19 +1.000000001 << 0 +1.000000001 << 1 +1.000000001 << 2 +1.000000001 << 3 +1.000000001 << 4 +1.000000001 << 5 +1.000000001 << 6 +1.000000001 << 7 +1.000000001 << 8 +1.000000001 << 9 +1.000000001 << 10 +1.000000001 << 11 +1.000000001 << 12 +1.000000001 << 13 +1.000000001 << 14 +1.000000001 << 15 +1.000000001 << 16 +1.000000001 << 17 +1.000000001 << 18 +1.000000001 << 19 +1.0000000001 << 0 +1.0000000001 << 1 +1.0000000001 << 2 +1.0000000001 << 3 +1.0000000001 << 4 +1.0000000001 << 5 +1.0000000001 << 6 +1.0000000001 << 7 +1.0000000001 << 8 +1.0000000001 << 9 +1.0000000001 << 10 +1.0000000001 << 11 +1.0000000001 << 12 +1.0000000001 << 13 +1.0000000001 << 14 +1.0000000001 << 15 +1.0000000001 << 16 +1.0000000001 << 17 +1.0000000001 << 18 +1.0000000001 << 19 +10 << 0 +10 << 1 +10 << 2 +10 << 3 +10 << 4 +10 << 5 +10 << 6 +10 << 7 +10 << 8 +10 << 9 +10 << 10 +10 << 11 +10 << 12 +10 << 13 +10 << 14 +10 << 15 +10 << 16 +10 << 17 +10 << 18 +10 << 19 +10.1 << 0 +10.1 << 1 +10.1 << 2 +10.1 << 3 +10.1 << 4 +10.1 << 5 +10.1 << 6 +10.1 << 7 +10.1 << 8 +10.1 << 9 +10.1 << 10 +10.1 << 11 +10.1 << 12 +10.1 << 13 +10.1 << 14 +10.1 << 15 +10.1 << 16 +10.1 << 17 +10.1 << 18 +10.1 << 19 +10.01 << 0 +10.01 << 1 +10.01 << 2 +10.01 << 3 +10.01 << 4 +10.01 << 5 +10.01 << 6 +10.01 << 7 +10.01 << 8 +10.01 << 9 +10.01 << 10 +10.01 << 11 +10.01 << 12 +10.01 << 13 +10.01 << 14 +10.01 << 15 +10.01 << 16 +10.01 << 17 +10.01 << 18 +10.01 << 19 +10.001 << 0 +10.001 << 1 +10.001 << 2 +10.001 << 3 +10.001 << 4 +10.001 << 5 +10.001 << 6 +10.001 << 7 +10.001 << 8 +10.001 << 9 +10.001 << 10 +10.001 << 11 +10.001 << 12 +10.001 << 13 +10.001 << 14 +10.001 << 15 +10.001 << 16 +10.001 << 17 +10.001 << 18 +10.001 << 19 +10.0001 << 0 +10.0001 << 1 +10.0001 << 2 +10.0001 << 3 +10.0001 << 4 +10.0001 << 5 +10.0001 << 6 +10.0001 << 7 +10.0001 << 8 +10.0001 << 9 +10.0001 << 10 +10.0001 << 11 +10.0001 << 12 +10.0001 << 13 +10.0001 << 14 +10.0001 << 15 +10.0001 << 16 +10.0001 << 17 +10.0001 << 18 +10.0001 << 19 +10.00001 << 0 +10.00001 << 1 +10.00001 << 2 +10.00001 << 3 +10.00001 << 4 +10.00001 << 5 +10.00001 << 6 +10.00001 << 7 +10.00001 << 8 +10.00001 << 9 +10.00001 << 10 +10.00001 << 11 +10.00001 << 12 +10.00001 << 13 +10.00001 << 14 +10.00001 << 15 +10.00001 << 16 +10.00001 << 17 +10.00001 << 18 +10.00001 << 19 +10.000001 << 0 +10.000001 << 1 +10.000001 << 2 +10.000001 << 3 +10.000001 << 4 +10.000001 << 5 +10.000001 << 6 +10.000001 << 7 +10.000001 << 8 +10.000001 << 9 +10.000001 << 10 +10.000001 << 11 +10.000001 << 12 +10.000001 << 13 +10.000001 << 14 +10.000001 << 15 +10.000001 << 16 +10.000001 << 17 +10.000001 << 18 +10.000001 << 19 +10.0000001 << 0 +10.0000001 << 1 +10.0000001 << 2 +10.0000001 << 3 +10.0000001 << 4 +10.0000001 << 5 +10.0000001 << 6 +10.0000001 << 7 +10.0000001 << 8 +10.0000001 << 9 +10.0000001 << 10 +10.0000001 << 11 +10.0000001 << 12 +10.0000001 << 13 +10.0000001 << 14 +10.0000001 << 15 +10.0000001 << 16 +10.0000001 << 17 +10.0000001 << 18 +10.0000001 << 19 +10.00000001 << 0 +10.00000001 << 1 +10.00000001 << 2 +10.00000001 << 3 +10.00000001 << 4 +10.00000001 << 5 +10.00000001 << 6 +10.00000001 << 7 +10.00000001 << 8 +10.00000001 << 9 +10.00000001 << 10 +10.00000001 << 11 +10.00000001 << 12 +10.00000001 << 13 +10.00000001 << 14 +10.00000001 << 15 +10.00000001 << 16 +10.00000001 << 17 +10.00000001 << 18 +10.00000001 << 19 +10.000000001 << 0 +10.000000001 << 1 +10.000000001 << 2 +10.000000001 << 3 +10.000000001 << 4 +10.000000001 << 5 +10.000000001 << 6 +10.000000001 << 7 +10.000000001 << 8 +10.000000001 << 9 +10.000000001 << 10 +10.000000001 << 11 +10.000000001 << 12 +10.000000001 << 13 +10.000000001 << 14 +10.000000001 << 15 +10.000000001 << 16 +10.000000001 << 17 +10.000000001 << 18 +10.000000001 << 19 +10.0000000001 << 0 +10.0000000001 << 1 +10.0000000001 << 2 +10.0000000001 << 3 +10.0000000001 << 4 +10.0000000001 << 5 +10.0000000001 << 6 +10.0000000001 << 7 +10.0000000001 << 8 +10.0000000001 << 9 +10.0000000001 << 10 +10.0000000001 << 11 +10.0000000001 << 12 +10.0000000001 << 13 +10.0000000001 << 14 +10.0000000001 << 15 +10.0000000001 << 16 +10.0000000001 << 17 +10.0000000001 << 18 +10.0000000001 << 19 +100 << 0 +100 << 1 +100 << 2 +100 << 3 +100 << 4 +100 << 5 +100 << 6 +100 << 7 +100 << 8 +100 << 9 +100 << 10 +100 << 11 +100 << 12 +100 << 13 +100 << 14 +100 << 15 +100 << 16 +100 << 17 +100 << 18 +100 << 19 +100.1 << 0 +100.1 << 1 +100.1 << 2 +100.1 << 3 +100.1 << 4 +100.1 << 5 +100.1 << 6 +100.1 << 7 +100.1 << 8 +100.1 << 9 +100.1 << 10 +100.1 << 11 +100.1 << 12 +100.1 << 13 +100.1 << 14 +100.1 << 15 +100.1 << 16 +100.1 << 17 +100.1 << 18 +100.1 << 19 +100.01 << 0 +100.01 << 1 +100.01 << 2 +100.01 << 3 +100.01 << 4 +100.01 << 5 +100.01 << 6 +100.01 << 7 +100.01 << 8 +100.01 << 9 +100.01 << 10 +100.01 << 11 +100.01 << 12 +100.01 << 13 +100.01 << 14 +100.01 << 15 +100.01 << 16 +100.01 << 17 +100.01 << 18 +100.01 << 19 +100.001 << 0 +100.001 << 1 +100.001 << 2 +100.001 << 3 +100.001 << 4 +100.001 << 5 +100.001 << 6 +100.001 << 7 +100.001 << 8 +100.001 << 9 +100.001 << 10 +100.001 << 11 +100.001 << 12 +100.001 << 13 +100.001 << 14 +100.001 << 15 +100.001 << 16 +100.001 << 17 +100.001 << 18 +100.001 << 19 +100.0001 << 0 +100.0001 << 1 +100.0001 << 2 +100.0001 << 3 +100.0001 << 4 +100.0001 << 5 +100.0001 << 6 +100.0001 << 7 +100.0001 << 8 +100.0001 << 9 +100.0001 << 10 +100.0001 << 11 +100.0001 << 12 +100.0001 << 13 +100.0001 << 14 +100.0001 << 15 +100.0001 << 16 +100.0001 << 17 +100.0001 << 18 +100.0001 << 19 +100.00001 << 0 +100.00001 << 1 +100.00001 << 2 +100.00001 << 3 +100.00001 << 4 +100.00001 << 5 +100.00001 << 6 +100.00001 << 7 +100.00001 << 8 +100.00001 << 9 +100.00001 << 10 +100.00001 << 11 +100.00001 << 12 +100.00001 << 13 +100.00001 << 14 +100.00001 << 15 +100.00001 << 16 +100.00001 << 17 +100.00001 << 18 +100.00001 << 19 +100.000001 << 0 +100.000001 << 1 +100.000001 << 2 +100.000001 << 3 +100.000001 << 4 +100.000001 << 5 +100.000001 << 6 +100.000001 << 7 +100.000001 << 8 +100.000001 << 9 +100.000001 << 10 +100.000001 << 11 +100.000001 << 12 +100.000001 << 13 +100.000001 << 14 +100.000001 << 15 +100.000001 << 16 +100.000001 << 17 +100.000001 << 18 +100.000001 << 19 +100.0000001 << 0 +100.0000001 << 1 +100.0000001 << 2 +100.0000001 << 3 +100.0000001 << 4 +100.0000001 << 5 +100.0000001 << 6 +100.0000001 << 7 +100.0000001 << 8 +100.0000001 << 9 +100.0000001 << 10 +100.0000001 << 11 +100.0000001 << 12 +100.0000001 << 13 +100.0000001 << 14 +100.0000001 << 15 +100.0000001 << 16 +100.0000001 << 17 +100.0000001 << 18 +100.0000001 << 19 +100.00000001 << 0 +100.00000001 << 1 +100.00000001 << 2 +100.00000001 << 3 +100.00000001 << 4 +100.00000001 << 5 +100.00000001 << 6 +100.00000001 << 7 +100.00000001 << 8 +100.00000001 << 9 +100.00000001 << 10 +100.00000001 << 11 +100.00000001 << 12 +100.00000001 << 13 +100.00000001 << 14 +100.00000001 << 15 +100.00000001 << 16 +100.00000001 << 17 +100.00000001 << 18 +100.00000001 << 19 +100.000000001 << 0 +100.000000001 << 1 +100.000000001 << 2 +100.000000001 << 3 +100.000000001 << 4 +100.000000001 << 5 +100.000000001 << 6 +100.000000001 << 7 +100.000000001 << 8 +100.000000001 << 9 +100.000000001 << 10 +100.000000001 << 11 +100.000000001 << 12 +100.000000001 << 13 +100.000000001 << 14 +100.000000001 << 15 +100.000000001 << 16 +100.000000001 << 17 +100.000000001 << 18 +100.000000001 << 19 +100.0000000001 << 0 +100.0000000001 << 1 +100.0000000001 << 2 +100.0000000001 << 3 +100.0000000001 << 4 +100.0000000001 << 5 +100.0000000001 << 6 +100.0000000001 << 7 +100.0000000001 << 8 +100.0000000001 << 9 +100.0000000001 << 10 +100.0000000001 << 11 +100.0000000001 << 12 +100.0000000001 << 13 +100.0000000001 << 14 +100.0000000001 << 15 +100.0000000001 << 16 +100.0000000001 << 17 +100.0000000001 << 18 +100.0000000001 << 19 +1000 << 0 +1000 << 1 +1000 << 2 +1000 << 3 +1000 << 4 +1000 << 5 +1000 << 6 +1000 << 7 +1000 << 8 +1000 << 9 +1000 << 10 +1000 << 11 +1000 << 12 +1000 << 13 +1000 << 14 +1000 << 15 +1000 << 16 +1000 << 17 +1000 << 18 +1000 << 19 +1000.1 << 0 +1000.1 << 1 +1000.1 << 2 +1000.1 << 3 +1000.1 << 4 +1000.1 << 5 +1000.1 << 6 +1000.1 << 7 +1000.1 << 8 +1000.1 << 9 +1000.1 << 10 +1000.1 << 11 +1000.1 << 12 +1000.1 << 13 +1000.1 << 14 +1000.1 << 15 +1000.1 << 16 +1000.1 << 17 +1000.1 << 18 +1000.1 << 19 +1000.01 << 0 +1000.01 << 1 +1000.01 << 2 +1000.01 << 3 +1000.01 << 4 +1000.01 << 5 +1000.01 << 6 +1000.01 << 7 +1000.01 << 8 +1000.01 << 9 +1000.01 << 10 +1000.01 << 11 +1000.01 << 12 +1000.01 << 13 +1000.01 << 14 +1000.01 << 15 +1000.01 << 16 +1000.01 << 17 +1000.01 << 18 +1000.01 << 19 +1000.001 << 0 +1000.001 << 1 +1000.001 << 2 +1000.001 << 3 +1000.001 << 4 +1000.001 << 5 +1000.001 << 6 +1000.001 << 7 +1000.001 << 8 +1000.001 << 9 +1000.001 << 10 +1000.001 << 11 +1000.001 << 12 +1000.001 << 13 +1000.001 << 14 +1000.001 << 15 +1000.001 << 16 +1000.001 << 17 +1000.001 << 18 +1000.001 << 19 +1000.0001 << 0 +1000.0001 << 1 +1000.0001 << 2 +1000.0001 << 3 +1000.0001 << 4 +1000.0001 << 5 +1000.0001 << 6 +1000.0001 << 7 +1000.0001 << 8 +1000.0001 << 9 +1000.0001 << 10 +1000.0001 << 11 +1000.0001 << 12 +1000.0001 << 13 +1000.0001 << 14 +1000.0001 << 15 +1000.0001 << 16 +1000.0001 << 17 +1000.0001 << 18 +1000.0001 << 19 +1000.00001 << 0 +1000.00001 << 1 +1000.00001 << 2 +1000.00001 << 3 +1000.00001 << 4 +1000.00001 << 5 +1000.00001 << 6 +1000.00001 << 7 +1000.00001 << 8 +1000.00001 << 9 +1000.00001 << 10 +1000.00001 << 11 +1000.00001 << 12 +1000.00001 << 13 +1000.00001 << 14 +1000.00001 << 15 +1000.00001 << 16 +1000.00001 << 17 +1000.00001 << 18 +1000.00001 << 19 +1000.000001 << 0 +1000.000001 << 1 +1000.000001 << 2 +1000.000001 << 3 +1000.000001 << 4 +1000.000001 << 5 +1000.000001 << 6 +1000.000001 << 7 +1000.000001 << 8 +1000.000001 << 9 +1000.000001 << 10 +1000.000001 << 11 +1000.000001 << 12 +1000.000001 << 13 +1000.000001 << 14 +1000.000001 << 15 +1000.000001 << 16 +1000.000001 << 17 +1000.000001 << 18 +1000.000001 << 19 +1000.0000001 << 0 +1000.0000001 << 1 +1000.0000001 << 2 +1000.0000001 << 3 +1000.0000001 << 4 +1000.0000001 << 5 +1000.0000001 << 6 +1000.0000001 << 7 +1000.0000001 << 8 +1000.0000001 << 9 +1000.0000001 << 10 +1000.0000001 << 11 +1000.0000001 << 12 +1000.0000001 << 13 +1000.0000001 << 14 +1000.0000001 << 15 +1000.0000001 << 16 +1000.0000001 << 17 +1000.0000001 << 18 +1000.0000001 << 19 +1000.00000001 << 0 +1000.00000001 << 1 +1000.00000001 << 2 +1000.00000001 << 3 +1000.00000001 << 4 +1000.00000001 << 5 +1000.00000001 << 6 +1000.00000001 << 7 +1000.00000001 << 8 +1000.00000001 << 9 +1000.00000001 << 10 +1000.00000001 << 11 +1000.00000001 << 12 +1000.00000001 << 13 +1000.00000001 << 14 +1000.00000001 << 15 +1000.00000001 << 16 +1000.00000001 << 17 +1000.00000001 << 18 +1000.00000001 << 19 +1000.000000001 << 0 +1000.000000001 << 1 +1000.000000001 << 2 +1000.000000001 << 3 +1000.000000001 << 4 +1000.000000001 << 5 +1000.000000001 << 6 +1000.000000001 << 7 +1000.000000001 << 8 +1000.000000001 << 9 +1000.000000001 << 10 +1000.000000001 << 11 +1000.000000001 << 12 +1000.000000001 << 13 +1000.000000001 << 14 +1000.000000001 << 15 +1000.000000001 << 16 +1000.000000001 << 17 +1000.000000001 << 18 +1000.000000001 << 19 +1000.0000000001 << 0 +1000.0000000001 << 1 +1000.0000000001 << 2 +1000.0000000001 << 3 +1000.0000000001 << 4 +1000.0000000001 << 5 +1000.0000000001 << 6 +1000.0000000001 << 7 +1000.0000000001 << 8 +1000.0000000001 << 9 +1000.0000000001 << 10 +1000.0000000001 << 11 +1000.0000000001 << 12 +1000.0000000001 << 13 +1000.0000000001 << 14 +1000.0000000001 << 15 +1000.0000000001 << 16 +1000.0000000001 << 17 +1000.0000000001 << 18 +1000.0000000001 << 19 +10000 << 0 +10000 << 1 +10000 << 2 +10000 << 3 +10000 << 4 +10000 << 5 +10000 << 6 +10000 << 7 +10000 << 8 +10000 << 9 +10000 << 10 +10000 << 11 +10000 << 12 +10000 << 13 +10000 << 14 +10000 << 15 +10000 << 16 +10000 << 17 +10000 << 18 +10000 << 19 +10000.1 << 0 +10000.1 << 1 +10000.1 << 2 +10000.1 << 3 +10000.1 << 4 +10000.1 << 5 +10000.1 << 6 +10000.1 << 7 +10000.1 << 8 +10000.1 << 9 +10000.1 << 10 +10000.1 << 11 +10000.1 << 12 +10000.1 << 13 +10000.1 << 14 +10000.1 << 15 +10000.1 << 16 +10000.1 << 17 +10000.1 << 18 +10000.1 << 19 +10000.01 << 0 +10000.01 << 1 +10000.01 << 2 +10000.01 << 3 +10000.01 << 4 +10000.01 << 5 +10000.01 << 6 +10000.01 << 7 +10000.01 << 8 +10000.01 << 9 +10000.01 << 10 +10000.01 << 11 +10000.01 << 12 +10000.01 << 13 +10000.01 << 14 +10000.01 << 15 +10000.01 << 16 +10000.01 << 17 +10000.01 << 18 +10000.01 << 19 +10000.001 << 0 +10000.001 << 1 +10000.001 << 2 +10000.001 << 3 +10000.001 << 4 +10000.001 << 5 +10000.001 << 6 +10000.001 << 7 +10000.001 << 8 +10000.001 << 9 +10000.001 << 10 +10000.001 << 11 +10000.001 << 12 +10000.001 << 13 +10000.001 << 14 +10000.001 << 15 +10000.001 << 16 +10000.001 << 17 +10000.001 << 18 +10000.001 << 19 +10000.0001 << 0 +10000.0001 << 1 +10000.0001 << 2 +10000.0001 << 3 +10000.0001 << 4 +10000.0001 << 5 +10000.0001 << 6 +10000.0001 << 7 +10000.0001 << 8 +10000.0001 << 9 +10000.0001 << 10 +10000.0001 << 11 +10000.0001 << 12 +10000.0001 << 13 +10000.0001 << 14 +10000.0001 << 15 +10000.0001 << 16 +10000.0001 << 17 +10000.0001 << 18 +10000.0001 << 19 +10000.00001 << 0 +10000.00001 << 1 +10000.00001 << 2 +10000.00001 << 3 +10000.00001 << 4 +10000.00001 << 5 +10000.00001 << 6 +10000.00001 << 7 +10000.00001 << 8 +10000.00001 << 9 +10000.00001 << 10 +10000.00001 << 11 +10000.00001 << 12 +10000.00001 << 13 +10000.00001 << 14 +10000.00001 << 15 +10000.00001 << 16 +10000.00001 << 17 +10000.00001 << 18 +10000.00001 << 19 +10000.000001 << 0 +10000.000001 << 1 +10000.000001 << 2 +10000.000001 << 3 +10000.000001 << 4 +10000.000001 << 5 +10000.000001 << 6 +10000.000001 << 7 +10000.000001 << 8 +10000.000001 << 9 +10000.000001 << 10 +10000.000001 << 11 +10000.000001 << 12 +10000.000001 << 13 +10000.000001 << 14 +10000.000001 << 15 +10000.000001 << 16 +10000.000001 << 17 +10000.000001 << 18 +10000.000001 << 19 +10000.0000001 << 0 +10000.0000001 << 1 +10000.0000001 << 2 +10000.0000001 << 3 +10000.0000001 << 4 +10000.0000001 << 5 +10000.0000001 << 6 +10000.0000001 << 7 +10000.0000001 << 8 +10000.0000001 << 9 +10000.0000001 << 10 +10000.0000001 << 11 +10000.0000001 << 12 +10000.0000001 << 13 +10000.0000001 << 14 +10000.0000001 << 15 +10000.0000001 << 16 +10000.0000001 << 17 +10000.0000001 << 18 +10000.0000001 << 19 +10000.00000001 << 0 +10000.00000001 << 1 +10000.00000001 << 2 +10000.00000001 << 3 +10000.00000001 << 4 +10000.00000001 << 5 +10000.00000001 << 6 +10000.00000001 << 7 +10000.00000001 << 8 +10000.00000001 << 9 +10000.00000001 << 10 +10000.00000001 << 11 +10000.00000001 << 12 +10000.00000001 << 13 +10000.00000001 << 14 +10000.00000001 << 15 +10000.00000001 << 16 +10000.00000001 << 17 +10000.00000001 << 18 +10000.00000001 << 19 +10000.000000001 << 0 +10000.000000001 << 1 +10000.000000001 << 2 +10000.000000001 << 3 +10000.000000001 << 4 +10000.000000001 << 5 +10000.000000001 << 6 +10000.000000001 << 7 +10000.000000001 << 8 +10000.000000001 << 9 +10000.000000001 << 10 +10000.000000001 << 11 +10000.000000001 << 12 +10000.000000001 << 13 +10000.000000001 << 14 +10000.000000001 << 15 +10000.000000001 << 16 +10000.000000001 << 17 +10000.000000001 << 18 +10000.000000001 << 19 +10000.0000000001 << 0 +10000.0000000001 << 1 +10000.0000000001 << 2 +10000.0000000001 << 3 +10000.0000000001 << 4 +10000.0000000001 << 5 +10000.0000000001 << 6 +10000.0000000001 << 7 +10000.0000000001 << 8 +10000.0000000001 << 9 +10000.0000000001 << 10 +10000.0000000001 << 11 +10000.0000000001 << 12 +10000.0000000001 << 13 +10000.0000000001 << 14 +10000.0000000001 << 15 +10000.0000000001 << 16 +10000.0000000001 << 17 +10000.0000000001 << 18 +10000.0000000001 << 19 +100000 << 0 +100000 << 1 +100000 << 2 +100000 << 3 +100000 << 4 +100000 << 5 +100000 << 6 +100000 << 7 +100000 << 8 +100000 << 9 +100000 << 10 +100000 << 11 +100000 << 12 +100000 << 13 +100000 << 14 +100000 << 15 +100000 << 16 +100000 << 17 +100000 << 18 +100000 << 19 +100000.1 << 0 +100000.1 << 1 +100000.1 << 2 +100000.1 << 3 +100000.1 << 4 +100000.1 << 5 +100000.1 << 6 +100000.1 << 7 +100000.1 << 8 +100000.1 << 9 +100000.1 << 10 +100000.1 << 11 +100000.1 << 12 +100000.1 << 13 +100000.1 << 14 +100000.1 << 15 +100000.1 << 16 +100000.1 << 17 +100000.1 << 18 +100000.1 << 19 +100000.01 << 0 +100000.01 << 1 +100000.01 << 2 +100000.01 << 3 +100000.01 << 4 +100000.01 << 5 +100000.01 << 6 +100000.01 << 7 +100000.01 << 8 +100000.01 << 9 +100000.01 << 10 +100000.01 << 11 +100000.01 << 12 +100000.01 << 13 +100000.01 << 14 +100000.01 << 15 +100000.01 << 16 +100000.01 << 17 +100000.01 << 18 +100000.01 << 19 +100000.001 << 0 +100000.001 << 1 +100000.001 << 2 +100000.001 << 3 +100000.001 << 4 +100000.001 << 5 +100000.001 << 6 +100000.001 << 7 +100000.001 << 8 +100000.001 << 9 +100000.001 << 10 +100000.001 << 11 +100000.001 << 12 +100000.001 << 13 +100000.001 << 14 +100000.001 << 15 +100000.001 << 16 +100000.001 << 17 +100000.001 << 18 +100000.001 << 19 +100000.0001 << 0 +100000.0001 << 1 +100000.0001 << 2 +100000.0001 << 3 +100000.0001 << 4 +100000.0001 << 5 +100000.0001 << 6 +100000.0001 << 7 +100000.0001 << 8 +100000.0001 << 9 +100000.0001 << 10 +100000.0001 << 11 +100000.0001 << 12 +100000.0001 << 13 +100000.0001 << 14 +100000.0001 << 15 +100000.0001 << 16 +100000.0001 << 17 +100000.0001 << 18 +100000.0001 << 19 +100000.00001 << 0 +100000.00001 << 1 +100000.00001 << 2 +100000.00001 << 3 +100000.00001 << 4 +100000.00001 << 5 +100000.00001 << 6 +100000.00001 << 7 +100000.00001 << 8 +100000.00001 << 9 +100000.00001 << 10 +100000.00001 << 11 +100000.00001 << 12 +100000.00001 << 13 +100000.00001 << 14 +100000.00001 << 15 +100000.00001 << 16 +100000.00001 << 17 +100000.00001 << 18 +100000.00001 << 19 +100000.000001 << 0 +100000.000001 << 1 +100000.000001 << 2 +100000.000001 << 3 +100000.000001 << 4 +100000.000001 << 5 +100000.000001 << 6 +100000.000001 << 7 +100000.000001 << 8 +100000.000001 << 9 +100000.000001 << 10 +100000.000001 << 11 +100000.000001 << 12 +100000.000001 << 13 +100000.000001 << 14 +100000.000001 << 15 +100000.000001 << 16 +100000.000001 << 17 +100000.000001 << 18 +100000.000001 << 19 +100000.0000001 << 0 +100000.0000001 << 1 +100000.0000001 << 2 +100000.0000001 << 3 +100000.0000001 << 4 +100000.0000001 << 5 +100000.0000001 << 6 +100000.0000001 << 7 +100000.0000001 << 8 +100000.0000001 << 9 +100000.0000001 << 10 +100000.0000001 << 11 +100000.0000001 << 12 +100000.0000001 << 13 +100000.0000001 << 14 +100000.0000001 << 15 +100000.0000001 << 16 +100000.0000001 << 17 +100000.0000001 << 18 +100000.0000001 << 19 +100000.00000001 << 0 +100000.00000001 << 1 +100000.00000001 << 2 +100000.00000001 << 3 +100000.00000001 << 4 +100000.00000001 << 5 +100000.00000001 << 6 +100000.00000001 << 7 +100000.00000001 << 8 +100000.00000001 << 9 +100000.00000001 << 10 +100000.00000001 << 11 +100000.00000001 << 12 +100000.00000001 << 13 +100000.00000001 << 14 +100000.00000001 << 15 +100000.00000001 << 16 +100000.00000001 << 17 +100000.00000001 << 18 +100000.00000001 << 19 +100000.000000001 << 0 +100000.000000001 << 1 +100000.000000001 << 2 +100000.000000001 << 3 +100000.000000001 << 4 +100000.000000001 << 5 +100000.000000001 << 6 +100000.000000001 << 7 +100000.000000001 << 8 +100000.000000001 << 9 +100000.000000001 << 10 +100000.000000001 << 11 +100000.000000001 << 12 +100000.000000001 << 13 +100000.000000001 << 14 +100000.000000001 << 15 +100000.000000001 << 16 +100000.000000001 << 17 +100000.000000001 << 18 +100000.000000001 << 19 +100000.0000000001 << 0 +100000.0000000001 << 1 +100000.0000000001 << 2 +100000.0000000001 << 3 +100000.0000000001 << 4 +100000.0000000001 << 5 +100000.0000000001 << 6 +100000.0000000001 << 7 +100000.0000000001 << 8 +100000.0000000001 << 9 +100000.0000000001 << 10 +100000.0000000001 << 11 +100000.0000000001 << 12 +100000.0000000001 << 13 +100000.0000000001 << 14 +100000.0000000001 << 15 +100000.0000000001 << 16 +100000.0000000001 << 17 +100000.0000000001 << 18 +100000.0000000001 << 19 +1000000 << 0 +1000000 << 1 +1000000 << 2 +1000000 << 3 +1000000 << 4 +1000000 << 5 +1000000 << 6 +1000000 << 7 +1000000 << 8 +1000000 << 9 +1000000 << 10 +1000000 << 11 +1000000 << 12 +1000000 << 13 +1000000 << 14 +1000000 << 15 +1000000 << 16 +1000000 << 17 +1000000 << 18 +1000000 << 19 +1000000.1 << 0 +1000000.1 << 1 +1000000.1 << 2 +1000000.1 << 3 +1000000.1 << 4 +1000000.1 << 5 +1000000.1 << 6 +1000000.1 << 7 +1000000.1 << 8 +1000000.1 << 9 +1000000.1 << 10 +1000000.1 << 11 +1000000.1 << 12 +1000000.1 << 13 +1000000.1 << 14 +1000000.1 << 15 +1000000.1 << 16 +1000000.1 << 17 +1000000.1 << 18 +1000000.1 << 19 +1000000.01 << 0 +1000000.01 << 1 +1000000.01 << 2 +1000000.01 << 3 +1000000.01 << 4 +1000000.01 << 5 +1000000.01 << 6 +1000000.01 << 7 +1000000.01 << 8 +1000000.01 << 9 +1000000.01 << 10 +1000000.01 << 11 +1000000.01 << 12 +1000000.01 << 13 +1000000.01 << 14 +1000000.01 << 15 +1000000.01 << 16 +1000000.01 << 17 +1000000.01 << 18 +1000000.01 << 19 +1000000.001 << 0 +1000000.001 << 1 +1000000.001 << 2 +1000000.001 << 3 +1000000.001 << 4 +1000000.001 << 5 +1000000.001 << 6 +1000000.001 << 7 +1000000.001 << 8 +1000000.001 << 9 +1000000.001 << 10 +1000000.001 << 11 +1000000.001 << 12 +1000000.001 << 13 +1000000.001 << 14 +1000000.001 << 15 +1000000.001 << 16 +1000000.001 << 17 +1000000.001 << 18 +1000000.001 << 19 +1000000.0001 << 0 +1000000.0001 << 1 +1000000.0001 << 2 +1000000.0001 << 3 +1000000.0001 << 4 +1000000.0001 << 5 +1000000.0001 << 6 +1000000.0001 << 7 +1000000.0001 << 8 +1000000.0001 << 9 +1000000.0001 << 10 +1000000.0001 << 11 +1000000.0001 << 12 +1000000.0001 << 13 +1000000.0001 << 14 +1000000.0001 << 15 +1000000.0001 << 16 +1000000.0001 << 17 +1000000.0001 << 18 +1000000.0001 << 19 +1000000.00001 << 0 +1000000.00001 << 1 +1000000.00001 << 2 +1000000.00001 << 3 +1000000.00001 << 4 +1000000.00001 << 5 +1000000.00001 << 6 +1000000.00001 << 7 +1000000.00001 << 8 +1000000.00001 << 9 +1000000.00001 << 10 +1000000.00001 << 11 +1000000.00001 << 12 +1000000.00001 << 13 +1000000.00001 << 14 +1000000.00001 << 15 +1000000.00001 << 16 +1000000.00001 << 17 +1000000.00001 << 18 +1000000.00001 << 19 +1000000.000001 << 0 +1000000.000001 << 1 +1000000.000001 << 2 +1000000.000001 << 3 +1000000.000001 << 4 +1000000.000001 << 5 +1000000.000001 << 6 +1000000.000001 << 7 +1000000.000001 << 8 +1000000.000001 << 9 +1000000.000001 << 10 +1000000.000001 << 11 +1000000.000001 << 12 +1000000.000001 << 13 +1000000.000001 << 14 +1000000.000001 << 15 +1000000.000001 << 16 +1000000.000001 << 17 +1000000.000001 << 18 +1000000.000001 << 19 +1000000.0000001 << 0 +1000000.0000001 << 1 +1000000.0000001 << 2 +1000000.0000001 << 3 +1000000.0000001 << 4 +1000000.0000001 << 5 +1000000.0000001 << 6 +1000000.0000001 << 7 +1000000.0000001 << 8 +1000000.0000001 << 9 +1000000.0000001 << 10 +1000000.0000001 << 11 +1000000.0000001 << 12 +1000000.0000001 << 13 +1000000.0000001 << 14 +1000000.0000001 << 15 +1000000.0000001 << 16 +1000000.0000001 << 17 +1000000.0000001 << 18 +1000000.0000001 << 19 +1000000.00000001 << 0 +1000000.00000001 << 1 +1000000.00000001 << 2 +1000000.00000001 << 3 +1000000.00000001 << 4 +1000000.00000001 << 5 +1000000.00000001 << 6 +1000000.00000001 << 7 +1000000.00000001 << 8 +1000000.00000001 << 9 +1000000.00000001 << 10 +1000000.00000001 << 11 +1000000.00000001 << 12 +1000000.00000001 << 13 +1000000.00000001 << 14 +1000000.00000001 << 15 +1000000.00000001 << 16 +1000000.00000001 << 17 +1000000.00000001 << 18 +1000000.00000001 << 19 +1000000.000000001 << 0 +1000000.000000001 << 1 +1000000.000000001 << 2 +1000000.000000001 << 3 +1000000.000000001 << 4 +1000000.000000001 << 5 +1000000.000000001 << 6 +1000000.000000001 << 7 +1000000.000000001 << 8 +1000000.000000001 << 9 +1000000.000000001 << 10 +1000000.000000001 << 11 +1000000.000000001 << 12 +1000000.000000001 << 13 +1000000.000000001 << 14 +1000000.000000001 << 15 +1000000.000000001 << 16 +1000000.000000001 << 17 +1000000.000000001 << 18 +1000000.000000001 << 19 +1000000.0000000001 << 0 +1000000.0000000001 << 1 +1000000.0000000001 << 2 +1000000.0000000001 << 3 +1000000.0000000001 << 4 +1000000.0000000001 << 5 +1000000.0000000001 << 6 +1000000.0000000001 << 7 +1000000.0000000001 << 8 +1000000.0000000001 << 9 +1000000.0000000001 << 10 +1000000.0000000001 << 11 +1000000.0000000001 << 12 +1000000.0000000001 << 13 +1000000.0000000001 << 14 +1000000.0000000001 << 15 +1000000.0000000001 << 16 +1000000.0000000001 << 17 +1000000.0000000001 << 18 +1000000.0000000001 << 19 +10000000 << 0 +10000000 << 1 +10000000 << 2 +10000000 << 3 +10000000 << 4 +10000000 << 5 +10000000 << 6 +10000000 << 7 +10000000 << 8 +10000000 << 9 +10000000 << 10 +10000000 << 11 +10000000 << 12 +10000000 << 13 +10000000 << 14 +10000000 << 15 +10000000 << 16 +10000000 << 17 +10000000 << 18 +10000000 << 19 +10000000.1 << 0 +10000000.1 << 1 +10000000.1 << 2 +10000000.1 << 3 +10000000.1 << 4 +10000000.1 << 5 +10000000.1 << 6 +10000000.1 << 7 +10000000.1 << 8 +10000000.1 << 9 +10000000.1 << 10 +10000000.1 << 11 +10000000.1 << 12 +10000000.1 << 13 +10000000.1 << 14 +10000000.1 << 15 +10000000.1 << 16 +10000000.1 << 17 +10000000.1 << 18 +10000000.1 << 19 +10000000.01 << 0 +10000000.01 << 1 +10000000.01 << 2 +10000000.01 << 3 +10000000.01 << 4 +10000000.01 << 5 +10000000.01 << 6 +10000000.01 << 7 +10000000.01 << 8 +10000000.01 << 9 +10000000.01 << 10 +10000000.01 << 11 +10000000.01 << 12 +10000000.01 << 13 +10000000.01 << 14 +10000000.01 << 15 +10000000.01 << 16 +10000000.01 << 17 +10000000.01 << 18 +10000000.01 << 19 +10000000.001 << 0 +10000000.001 << 1 +10000000.001 << 2 +10000000.001 << 3 +10000000.001 << 4 +10000000.001 << 5 +10000000.001 << 6 +10000000.001 << 7 +10000000.001 << 8 +10000000.001 << 9 +10000000.001 << 10 +10000000.001 << 11 +10000000.001 << 12 +10000000.001 << 13 +10000000.001 << 14 +10000000.001 << 15 +10000000.001 << 16 +10000000.001 << 17 +10000000.001 << 18 +10000000.001 << 19 +10000000.0001 << 0 +10000000.0001 << 1 +10000000.0001 << 2 +10000000.0001 << 3 +10000000.0001 << 4 +10000000.0001 << 5 +10000000.0001 << 6 +10000000.0001 << 7 +10000000.0001 << 8 +10000000.0001 << 9 +10000000.0001 << 10 +10000000.0001 << 11 +10000000.0001 << 12 +10000000.0001 << 13 +10000000.0001 << 14 +10000000.0001 << 15 +10000000.0001 << 16 +10000000.0001 << 17 +10000000.0001 << 18 +10000000.0001 << 19 +10000000.00001 << 0 +10000000.00001 << 1 +10000000.00001 << 2 +10000000.00001 << 3 +10000000.00001 << 4 +10000000.00001 << 5 +10000000.00001 << 6 +10000000.00001 << 7 +10000000.00001 << 8 +10000000.00001 << 9 +10000000.00001 << 10 +10000000.00001 << 11 +10000000.00001 << 12 +10000000.00001 << 13 +10000000.00001 << 14 +10000000.00001 << 15 +10000000.00001 << 16 +10000000.00001 << 17 +10000000.00001 << 18 +10000000.00001 << 19 +10000000.000001 << 0 +10000000.000001 << 1 +10000000.000001 << 2 +10000000.000001 << 3 +10000000.000001 << 4 +10000000.000001 << 5 +10000000.000001 << 6 +10000000.000001 << 7 +10000000.000001 << 8 +10000000.000001 << 9 +10000000.000001 << 10 +10000000.000001 << 11 +10000000.000001 << 12 +10000000.000001 << 13 +10000000.000001 << 14 +10000000.000001 << 15 +10000000.000001 << 16 +10000000.000001 << 17 +10000000.000001 << 18 +10000000.000001 << 19 +10000000.0000001 << 0 +10000000.0000001 << 1 +10000000.0000001 << 2 +10000000.0000001 << 3 +10000000.0000001 << 4 +10000000.0000001 << 5 +10000000.0000001 << 6 +10000000.0000001 << 7 +10000000.0000001 << 8 +10000000.0000001 << 9 +10000000.0000001 << 10 +10000000.0000001 << 11 +10000000.0000001 << 12 +10000000.0000001 << 13 +10000000.0000001 << 14 +10000000.0000001 << 15 +10000000.0000001 << 16 +10000000.0000001 << 17 +10000000.0000001 << 18 +10000000.0000001 << 19 +10000000.00000001 << 0 +10000000.00000001 << 1 +10000000.00000001 << 2 +10000000.00000001 << 3 +10000000.00000001 << 4 +10000000.00000001 << 5 +10000000.00000001 << 6 +10000000.00000001 << 7 +10000000.00000001 << 8 +10000000.00000001 << 9 +10000000.00000001 << 10 +10000000.00000001 << 11 +10000000.00000001 << 12 +10000000.00000001 << 13 +10000000.00000001 << 14 +10000000.00000001 << 15 +10000000.00000001 << 16 +10000000.00000001 << 17 +10000000.00000001 << 18 +10000000.00000001 << 19 +10000000.000000001 << 0 +10000000.000000001 << 1 +10000000.000000001 << 2 +10000000.000000001 << 3 +10000000.000000001 << 4 +10000000.000000001 << 5 +10000000.000000001 << 6 +10000000.000000001 << 7 +10000000.000000001 << 8 +10000000.000000001 << 9 +10000000.000000001 << 10 +10000000.000000001 << 11 +10000000.000000001 << 12 +10000000.000000001 << 13 +10000000.000000001 << 14 +10000000.000000001 << 15 +10000000.000000001 << 16 +10000000.000000001 << 17 +10000000.000000001 << 18 +10000000.000000001 << 19 +10000000.0000000001 << 0 +10000000.0000000001 << 1 +10000000.0000000001 << 2 +10000000.0000000001 << 3 +10000000.0000000001 << 4 +10000000.0000000001 << 5 +10000000.0000000001 << 6 +10000000.0000000001 << 7 +10000000.0000000001 << 8 +10000000.0000000001 << 9 +10000000.0000000001 << 10 +10000000.0000000001 << 11 +10000000.0000000001 << 12 +10000000.0000000001 << 13 +10000000.0000000001 << 14 +10000000.0000000001 << 15 +10000000.0000000001 << 16 +10000000.0000000001 << 17 +10000000.0000000001 << 18 +10000000.0000000001 << 19 +100000000 << 0 +100000000 << 1 +100000000 << 2 +100000000 << 3 +100000000 << 4 +100000000 << 5 +100000000 << 6 +100000000 << 7 +100000000 << 8 +100000000 << 9 +100000000 << 10 +100000000 << 11 +100000000 << 12 +100000000 << 13 +100000000 << 14 +100000000 << 15 +100000000 << 16 +100000000 << 17 +100000000 << 18 +100000000 << 19 +100000000.1 << 0 +100000000.1 << 1 +100000000.1 << 2 +100000000.1 << 3 +100000000.1 << 4 +100000000.1 << 5 +100000000.1 << 6 +100000000.1 << 7 +100000000.1 << 8 +100000000.1 << 9 +100000000.1 << 10 +100000000.1 << 11 +100000000.1 << 12 +100000000.1 << 13 +100000000.1 << 14 +100000000.1 << 15 +100000000.1 << 16 +100000000.1 << 17 +100000000.1 << 18 +100000000.1 << 19 +100000000.01 << 0 +100000000.01 << 1 +100000000.01 << 2 +100000000.01 << 3 +100000000.01 << 4 +100000000.01 << 5 +100000000.01 << 6 +100000000.01 << 7 +100000000.01 << 8 +100000000.01 << 9 +100000000.01 << 10 +100000000.01 << 11 +100000000.01 << 12 +100000000.01 << 13 +100000000.01 << 14 +100000000.01 << 15 +100000000.01 << 16 +100000000.01 << 17 +100000000.01 << 18 +100000000.01 << 19 +100000000.001 << 0 +100000000.001 << 1 +100000000.001 << 2 +100000000.001 << 3 +100000000.001 << 4 +100000000.001 << 5 +100000000.001 << 6 +100000000.001 << 7 +100000000.001 << 8 +100000000.001 << 9 +100000000.001 << 10 +100000000.001 << 11 +100000000.001 << 12 +100000000.001 << 13 +100000000.001 << 14 +100000000.001 << 15 +100000000.001 << 16 +100000000.001 << 17 +100000000.001 << 18 +100000000.001 << 19 +100000000.0001 << 0 +100000000.0001 << 1 +100000000.0001 << 2 +100000000.0001 << 3 +100000000.0001 << 4 +100000000.0001 << 5 +100000000.0001 << 6 +100000000.0001 << 7 +100000000.0001 << 8 +100000000.0001 << 9 +100000000.0001 << 10 +100000000.0001 << 11 +100000000.0001 << 12 +100000000.0001 << 13 +100000000.0001 << 14 +100000000.0001 << 15 +100000000.0001 << 16 +100000000.0001 << 17 +100000000.0001 << 18 +100000000.0001 << 19 +100000000.00001 << 0 +100000000.00001 << 1 +100000000.00001 << 2 +100000000.00001 << 3 +100000000.00001 << 4 +100000000.00001 << 5 +100000000.00001 << 6 +100000000.00001 << 7 +100000000.00001 << 8 +100000000.00001 << 9 +100000000.00001 << 10 +100000000.00001 << 11 +100000000.00001 << 12 +100000000.00001 << 13 +100000000.00001 << 14 +100000000.00001 << 15 +100000000.00001 << 16 +100000000.00001 << 17 +100000000.00001 << 18 +100000000.00001 << 19 +100000000.000001 << 0 +100000000.000001 << 1 +100000000.000001 << 2 +100000000.000001 << 3 +100000000.000001 << 4 +100000000.000001 << 5 +100000000.000001 << 6 +100000000.000001 << 7 +100000000.000001 << 8 +100000000.000001 << 9 +100000000.000001 << 10 +100000000.000001 << 11 +100000000.000001 << 12 +100000000.000001 << 13 +100000000.000001 << 14 +100000000.000001 << 15 +100000000.000001 << 16 +100000000.000001 << 17 +100000000.000001 << 18 +100000000.000001 << 19 +100000000.0000001 << 0 +100000000.0000001 << 1 +100000000.0000001 << 2 +100000000.0000001 << 3 +100000000.0000001 << 4 +100000000.0000001 << 5 +100000000.0000001 << 6 +100000000.0000001 << 7 +100000000.0000001 << 8 +100000000.0000001 << 9 +100000000.0000001 << 10 +100000000.0000001 << 11 +100000000.0000001 << 12 +100000000.0000001 << 13 +100000000.0000001 << 14 +100000000.0000001 << 15 +100000000.0000001 << 16 +100000000.0000001 << 17 +100000000.0000001 << 18 +100000000.0000001 << 19 +100000000.00000001 << 0 +100000000.00000001 << 1 +100000000.00000001 << 2 +100000000.00000001 << 3 +100000000.00000001 << 4 +100000000.00000001 << 5 +100000000.00000001 << 6 +100000000.00000001 << 7 +100000000.00000001 << 8 +100000000.00000001 << 9 +100000000.00000001 << 10 +100000000.00000001 << 11 +100000000.00000001 << 12 +100000000.00000001 << 13 +100000000.00000001 << 14 +100000000.00000001 << 15 +100000000.00000001 << 16 +100000000.00000001 << 17 +100000000.00000001 << 18 +100000000.00000001 << 19 +100000000.000000001 << 0 +100000000.000000001 << 1 +100000000.000000001 << 2 +100000000.000000001 << 3 +100000000.000000001 << 4 +100000000.000000001 << 5 +100000000.000000001 << 6 +100000000.000000001 << 7 +100000000.000000001 << 8 +100000000.000000001 << 9 +100000000.000000001 << 10 +100000000.000000001 << 11 +100000000.000000001 << 12 +100000000.000000001 << 13 +100000000.000000001 << 14 +100000000.000000001 << 15 +100000000.000000001 << 16 +100000000.000000001 << 17 +100000000.000000001 << 18 +100000000.000000001 << 19 +100000000.0000000001 << 0 +100000000.0000000001 << 1 +100000000.0000000001 << 2 +100000000.0000000001 << 3 +100000000.0000000001 << 4 +100000000.0000000001 << 5 +100000000.0000000001 << 6 +100000000.0000000001 << 7 +100000000.0000000001 << 8 +100000000.0000000001 << 9 +100000000.0000000001 << 10 +100000000.0000000001 << 11 +100000000.0000000001 << 12 +100000000.0000000001 << 13 +100000000.0000000001 << 14 +100000000.0000000001 << 15 +100000000.0000000001 << 16 +100000000.0000000001 << 17 +100000000.0000000001 << 18 +100000000.0000000001 << 19 +1000000000 << 0 +1000000000 << 1 +1000000000 << 2 +1000000000 << 3 +1000000000 << 4 +1000000000 << 5 +1000000000 << 6 +1000000000 << 7 +1000000000 << 8 +1000000000 << 9 +1000000000 << 10 +1000000000 << 11 +1000000000 << 12 +1000000000 << 13 +1000000000 << 14 +1000000000 << 15 +1000000000 << 16 +1000000000 << 17 +1000000000 << 18 +1000000000 << 19 +1000000000.1 << 0 +1000000000.1 << 1 +1000000000.1 << 2 +1000000000.1 << 3 +1000000000.1 << 4 +1000000000.1 << 5 +1000000000.1 << 6 +1000000000.1 << 7 +1000000000.1 << 8 +1000000000.1 << 9 +1000000000.1 << 10 +1000000000.1 << 11 +1000000000.1 << 12 +1000000000.1 << 13 +1000000000.1 << 14 +1000000000.1 << 15 +1000000000.1 << 16 +1000000000.1 << 17 +1000000000.1 << 18 +1000000000.1 << 19 +1000000000.01 << 0 +1000000000.01 << 1 +1000000000.01 << 2 +1000000000.01 << 3 +1000000000.01 << 4 +1000000000.01 << 5 +1000000000.01 << 6 +1000000000.01 << 7 +1000000000.01 << 8 +1000000000.01 << 9 +1000000000.01 << 10 +1000000000.01 << 11 +1000000000.01 << 12 +1000000000.01 << 13 +1000000000.01 << 14 +1000000000.01 << 15 +1000000000.01 << 16 +1000000000.01 << 17 +1000000000.01 << 18 +1000000000.01 << 19 +1000000000.001 << 0 +1000000000.001 << 1 +1000000000.001 << 2 +1000000000.001 << 3 +1000000000.001 << 4 +1000000000.001 << 5 +1000000000.001 << 6 +1000000000.001 << 7 +1000000000.001 << 8 +1000000000.001 << 9 +1000000000.001 << 10 +1000000000.001 << 11 +1000000000.001 << 12 +1000000000.001 << 13 +1000000000.001 << 14 +1000000000.001 << 15 +1000000000.001 << 16 +1000000000.001 << 17 +1000000000.001 << 18 +1000000000.001 << 19 +1000000000.0001 << 0 +1000000000.0001 << 1 +1000000000.0001 << 2 +1000000000.0001 << 3 +1000000000.0001 << 4 +1000000000.0001 << 5 +1000000000.0001 << 6 +1000000000.0001 << 7 +1000000000.0001 << 8 +1000000000.0001 << 9 +1000000000.0001 << 10 +1000000000.0001 << 11 +1000000000.0001 << 12 +1000000000.0001 << 13 +1000000000.0001 << 14 +1000000000.0001 << 15 +1000000000.0001 << 16 +1000000000.0001 << 17 +1000000000.0001 << 18 +1000000000.0001 << 19 +1000000000.00001 << 0 +1000000000.00001 << 1 +1000000000.00001 << 2 +1000000000.00001 << 3 +1000000000.00001 << 4 +1000000000.00001 << 5 +1000000000.00001 << 6 +1000000000.00001 << 7 +1000000000.00001 << 8 +1000000000.00001 << 9 +1000000000.00001 << 10 +1000000000.00001 << 11 +1000000000.00001 << 12 +1000000000.00001 << 13 +1000000000.00001 << 14 +1000000000.00001 << 15 +1000000000.00001 << 16 +1000000000.00001 << 17 +1000000000.00001 << 18 +1000000000.00001 << 19 +1000000000.000001 << 0 +1000000000.000001 << 1 +1000000000.000001 << 2 +1000000000.000001 << 3 +1000000000.000001 << 4 +1000000000.000001 << 5 +1000000000.000001 << 6 +1000000000.000001 << 7 +1000000000.000001 << 8 +1000000000.000001 << 9 +1000000000.000001 << 10 +1000000000.000001 << 11 +1000000000.000001 << 12 +1000000000.000001 << 13 +1000000000.000001 << 14 +1000000000.000001 << 15 +1000000000.000001 << 16 +1000000000.000001 << 17 +1000000000.000001 << 18 +1000000000.000001 << 19 +1000000000.0000001 << 0 +1000000000.0000001 << 1 +1000000000.0000001 << 2 +1000000000.0000001 << 3 +1000000000.0000001 << 4 +1000000000.0000001 << 5 +1000000000.0000001 << 6 +1000000000.0000001 << 7 +1000000000.0000001 << 8 +1000000000.0000001 << 9 +1000000000.0000001 << 10 +1000000000.0000001 << 11 +1000000000.0000001 << 12 +1000000000.0000001 << 13 +1000000000.0000001 << 14 +1000000000.0000001 << 15 +1000000000.0000001 << 16 +1000000000.0000001 << 17 +1000000000.0000001 << 18 +1000000000.0000001 << 19 +1000000000.00000001 << 0 +1000000000.00000001 << 1 +1000000000.00000001 << 2 +1000000000.00000001 << 3 +1000000000.00000001 << 4 +1000000000.00000001 << 5 +1000000000.00000001 << 6 +1000000000.00000001 << 7 +1000000000.00000001 << 8 +1000000000.00000001 << 9 +1000000000.00000001 << 10 +1000000000.00000001 << 11 +1000000000.00000001 << 12 +1000000000.00000001 << 13 +1000000000.00000001 << 14 +1000000000.00000001 << 15 +1000000000.00000001 << 16 +1000000000.00000001 << 17 +1000000000.00000001 << 18 +1000000000.00000001 << 19 +1000000000.000000001 << 0 +1000000000.000000001 << 1 +1000000000.000000001 << 2 +1000000000.000000001 << 3 +1000000000.000000001 << 4 +1000000000.000000001 << 5 +1000000000.000000001 << 6 +1000000000.000000001 << 7 +1000000000.000000001 << 8 +1000000000.000000001 << 9 +1000000000.000000001 << 10 +1000000000.000000001 << 11 +1000000000.000000001 << 12 +1000000000.000000001 << 13 +1000000000.000000001 << 14 +1000000000.000000001 << 15 +1000000000.000000001 << 16 +1000000000.000000001 << 17 +1000000000.000000001 << 18 +1000000000.000000001 << 19 +1000000000.0000000001 << 0 +1000000000.0000000001 << 1 +1000000000.0000000001 << 2 +1000000000.0000000001 << 3 +1000000000.0000000001 << 4 +1000000000.0000000001 << 5 +1000000000.0000000001 << 6 +1000000000.0000000001 << 7 +1000000000.0000000001 << 8 +1000000000.0000000001 << 9 +1000000000.0000000001 << 10 +1000000000.0000000001 << 11 +1000000000.0000000001 << 12 +1000000000.0000000001 << 13 +1000000000.0000000001 << 14 +1000000000.0000000001 << 15 +1000000000.0000000001 << 16 +1000000000.0000000001 << 17 +1000000000.0000000001 << 18 +1000000000.0000000001 << 19 +10000000000 << 0 +10000000000 << 1 +10000000000 << 2 +10000000000 << 3 +10000000000 << 4 +10000000000 << 5 +10000000000 << 6 +10000000000 << 7 +10000000000 << 8 +10000000000 << 9 +10000000000 << 10 +10000000000 << 11 +10000000000 << 12 +10000000000 << 13 +10000000000 << 14 +10000000000 << 15 +10000000000 << 16 +10000000000 << 17 +10000000000 << 18 +10000000000 << 19 +10000000000.1 << 0 +10000000000.1 << 1 +10000000000.1 << 2 +10000000000.1 << 3 +10000000000.1 << 4 +10000000000.1 << 5 +10000000000.1 << 6 +10000000000.1 << 7 +10000000000.1 << 8 +10000000000.1 << 9 +10000000000.1 << 10 +10000000000.1 << 11 +10000000000.1 << 12 +10000000000.1 << 13 +10000000000.1 << 14 +10000000000.1 << 15 +10000000000.1 << 16 +10000000000.1 << 17 +10000000000.1 << 18 +10000000000.1 << 19 +10000000000.01 << 0 +10000000000.01 << 1 +10000000000.01 << 2 +10000000000.01 << 3 +10000000000.01 << 4 +10000000000.01 << 5 +10000000000.01 << 6 +10000000000.01 << 7 +10000000000.01 << 8 +10000000000.01 << 9 +10000000000.01 << 10 +10000000000.01 << 11 +10000000000.01 << 12 +10000000000.01 << 13 +10000000000.01 << 14 +10000000000.01 << 15 +10000000000.01 << 16 +10000000000.01 << 17 +10000000000.01 << 18 +10000000000.01 << 19 +10000000000.001 << 0 +10000000000.001 << 1 +10000000000.001 << 2 +10000000000.001 << 3 +10000000000.001 << 4 +10000000000.001 << 5 +10000000000.001 << 6 +10000000000.001 << 7 +10000000000.001 << 8 +10000000000.001 << 9 +10000000000.001 << 10 +10000000000.001 << 11 +10000000000.001 << 12 +10000000000.001 << 13 +10000000000.001 << 14 +10000000000.001 << 15 +10000000000.001 << 16 +10000000000.001 << 17 +10000000000.001 << 18 +10000000000.001 << 19 +10000000000.0001 << 0 +10000000000.0001 << 1 +10000000000.0001 << 2 +10000000000.0001 << 3 +10000000000.0001 << 4 +10000000000.0001 << 5 +10000000000.0001 << 6 +10000000000.0001 << 7 +10000000000.0001 << 8 +10000000000.0001 << 9 +10000000000.0001 << 10 +10000000000.0001 << 11 +10000000000.0001 << 12 +10000000000.0001 << 13 +10000000000.0001 << 14 +10000000000.0001 << 15 +10000000000.0001 << 16 +10000000000.0001 << 17 +10000000000.0001 << 18 +10000000000.0001 << 19 +10000000000.00001 << 0 +10000000000.00001 << 1 +10000000000.00001 << 2 +10000000000.00001 << 3 +10000000000.00001 << 4 +10000000000.00001 << 5 +10000000000.00001 << 6 +10000000000.00001 << 7 +10000000000.00001 << 8 +10000000000.00001 << 9 +10000000000.00001 << 10 +10000000000.00001 << 11 +10000000000.00001 << 12 +10000000000.00001 << 13 +10000000000.00001 << 14 +10000000000.00001 << 15 +10000000000.00001 << 16 +10000000000.00001 << 17 +10000000000.00001 << 18 +10000000000.00001 << 19 +10000000000.000001 << 0 +10000000000.000001 << 1 +10000000000.000001 << 2 +10000000000.000001 << 3 +10000000000.000001 << 4 +10000000000.000001 << 5 +10000000000.000001 << 6 +10000000000.000001 << 7 +10000000000.000001 << 8 +10000000000.000001 << 9 +10000000000.000001 << 10 +10000000000.000001 << 11 +10000000000.000001 << 12 +10000000000.000001 << 13 +10000000000.000001 << 14 +10000000000.000001 << 15 +10000000000.000001 << 16 +10000000000.000001 << 17 +10000000000.000001 << 18 +10000000000.000001 << 19 +10000000000.0000001 << 0 +10000000000.0000001 << 1 +10000000000.0000001 << 2 +10000000000.0000001 << 3 +10000000000.0000001 << 4 +10000000000.0000001 << 5 +10000000000.0000001 << 6 +10000000000.0000001 << 7 +10000000000.0000001 << 8 +10000000000.0000001 << 9 +10000000000.0000001 << 10 +10000000000.0000001 << 11 +10000000000.0000001 << 12 +10000000000.0000001 << 13 +10000000000.0000001 << 14 +10000000000.0000001 << 15 +10000000000.0000001 << 16 +10000000000.0000001 << 17 +10000000000.0000001 << 18 +10000000000.0000001 << 19 +10000000000.00000001 << 0 +10000000000.00000001 << 1 +10000000000.00000001 << 2 +10000000000.00000001 << 3 +10000000000.00000001 << 4 +10000000000.00000001 << 5 +10000000000.00000001 << 6 +10000000000.00000001 << 7 +10000000000.00000001 << 8 +10000000000.00000001 << 9 +10000000000.00000001 << 10 +10000000000.00000001 << 11 +10000000000.00000001 << 12 +10000000000.00000001 << 13 +10000000000.00000001 << 14 +10000000000.00000001 << 15 +10000000000.00000001 << 16 +10000000000.00000001 << 17 +10000000000.00000001 << 18 +10000000000.00000001 << 19 +10000000000.000000001 << 0 +10000000000.000000001 << 1 +10000000000.000000001 << 2 +10000000000.000000001 << 3 +10000000000.000000001 << 4 +10000000000.000000001 << 5 +10000000000.000000001 << 6 +10000000000.000000001 << 7 +10000000000.000000001 << 8 +10000000000.000000001 << 9 +10000000000.000000001 << 10 +10000000000.000000001 << 11 +10000000000.000000001 << 12 +10000000000.000000001 << 13 +10000000000.000000001 << 14 +10000000000.000000001 << 15 +10000000000.000000001 << 16 +10000000000.000000001 << 17 +10000000000.000000001 << 18 +10000000000.000000001 << 19 +10000000000.0000000001 << 0 +10000000000.0000000001 << 1 +10000000000.0000000001 << 2 +10000000000.0000000001 << 3 +10000000000.0000000001 << 4 +10000000000.0000000001 << 5 +10000000000.0000000001 << 6 +10000000000.0000000001 << 7 +10000000000.0000000001 << 8 +10000000000.0000000001 << 9 +10000000000.0000000001 << 10 +10000000000.0000000001 << 11 +10000000000.0000000001 << 12 +10000000000.0000000001 << 13 +10000000000.0000000001 << 14 +10000000000.0000000001 << 15 +10000000000.0000000001 << 16 +10000000000.0000000001 << 17 +10000000000.0000000001 << 18 +10000000000.0000000001 << 19 +0 >> 0 +0 >> 1 +0 >> 2 +0 >> 3 +0 >> 4 +0 >> 5 +0 >> 6 +0 >> 7 +0 >> 8 +0 >> 9 +0 >> 10 +0 >> 11 +0 >> 12 +0 >> 13 +0 >> 14 +0 >> 15 +0 >> 16 +0 >> 17 +0 >> 18 +0 >> 19 +0.1 >> 0 +0.1 >> 1 +0.1 >> 2 +0.1 >> 3 +0.1 >> 4 +0.1 >> 5 +0.1 >> 6 +0.1 >> 7 +0.1 >> 8 +0.1 >> 9 +0.1 >> 10 +0.1 >> 11 +0.1 >> 12 +0.1 >> 13 +0.1 >> 14 +0.1 >> 15 +0.1 >> 16 +0.1 >> 17 +0.1 >> 18 +0.1 >> 19 +0.01 >> 0 +0.01 >> 1 +0.01 >> 2 +0.01 >> 3 +0.01 >> 4 +0.01 >> 5 +0.01 >> 6 +0.01 >> 7 +0.01 >> 8 +0.01 >> 9 +0.01 >> 10 +0.01 >> 11 +0.01 >> 12 +0.01 >> 13 +0.01 >> 14 +0.01 >> 15 +0.01 >> 16 +0.01 >> 17 +0.01 >> 18 +0.01 >> 19 +0.001 >> 0 +0.001 >> 1 +0.001 >> 2 +0.001 >> 3 +0.001 >> 4 +0.001 >> 5 +0.001 >> 6 +0.001 >> 7 +0.001 >> 8 +0.001 >> 9 +0.001 >> 10 +0.001 >> 11 +0.001 >> 12 +0.001 >> 13 +0.001 >> 14 +0.001 >> 15 +0.001 >> 16 +0.001 >> 17 +0.001 >> 18 +0.001 >> 19 +0.0001 >> 0 +0.0001 >> 1 +0.0001 >> 2 +0.0001 >> 3 +0.0001 >> 4 +0.0001 >> 5 +0.0001 >> 6 +0.0001 >> 7 +0.0001 >> 8 +0.0001 >> 9 +0.0001 >> 10 +0.0001 >> 11 +0.0001 >> 12 +0.0001 >> 13 +0.0001 >> 14 +0.0001 >> 15 +0.0001 >> 16 +0.0001 >> 17 +0.0001 >> 18 +0.0001 >> 19 +0.00001 >> 0 +0.00001 >> 1 +0.00001 >> 2 +0.00001 >> 3 +0.00001 >> 4 +0.00001 >> 5 +0.00001 >> 6 +0.00001 >> 7 +0.00001 >> 8 +0.00001 >> 9 +0.00001 >> 10 +0.00001 >> 11 +0.00001 >> 12 +0.00001 >> 13 +0.00001 >> 14 +0.00001 >> 15 +0.00001 >> 16 +0.00001 >> 17 +0.00001 >> 18 +0.00001 >> 19 +0.000001 >> 0 +0.000001 >> 1 +0.000001 >> 2 +0.000001 >> 3 +0.000001 >> 4 +0.000001 >> 5 +0.000001 >> 6 +0.000001 >> 7 +0.000001 >> 8 +0.000001 >> 9 +0.000001 >> 10 +0.000001 >> 11 +0.000001 >> 12 +0.000001 >> 13 +0.000001 >> 14 +0.000001 >> 15 +0.000001 >> 16 +0.000001 >> 17 +0.000001 >> 18 +0.000001 >> 19 +0.0000001 >> 0 +0.0000001 >> 1 +0.0000001 >> 2 +0.0000001 >> 3 +0.0000001 >> 4 +0.0000001 >> 5 +0.0000001 >> 6 +0.0000001 >> 7 +0.0000001 >> 8 +0.0000001 >> 9 +0.0000001 >> 10 +0.0000001 >> 11 +0.0000001 >> 12 +0.0000001 >> 13 +0.0000001 >> 14 +0.0000001 >> 15 +0.0000001 >> 16 +0.0000001 >> 17 +0.0000001 >> 18 +0.0000001 >> 19 +0.00000001 >> 0 +0.00000001 >> 1 +0.00000001 >> 2 +0.00000001 >> 3 +0.00000001 >> 4 +0.00000001 >> 5 +0.00000001 >> 6 +0.00000001 >> 7 +0.00000001 >> 8 +0.00000001 >> 9 +0.00000001 >> 10 +0.00000001 >> 11 +0.00000001 >> 12 +0.00000001 >> 13 +0.00000001 >> 14 +0.00000001 >> 15 +0.00000001 >> 16 +0.00000001 >> 17 +0.00000001 >> 18 +0.00000001 >> 19 +0.000000001 >> 0 +0.000000001 >> 1 +0.000000001 >> 2 +0.000000001 >> 3 +0.000000001 >> 4 +0.000000001 >> 5 +0.000000001 >> 6 +0.000000001 >> 7 +0.000000001 >> 8 +0.000000001 >> 9 +0.000000001 >> 10 +0.000000001 >> 11 +0.000000001 >> 12 +0.000000001 >> 13 +0.000000001 >> 14 +0.000000001 >> 15 +0.000000001 >> 16 +0.000000001 >> 17 +0.000000001 >> 18 +0.000000001 >> 19 +0.0000000001 >> 0 +0.0000000001 >> 1 +0.0000000001 >> 2 +0.0000000001 >> 3 +0.0000000001 >> 4 +0.0000000001 >> 5 +0.0000000001 >> 6 +0.0000000001 >> 7 +0.0000000001 >> 8 +0.0000000001 >> 9 +0.0000000001 >> 10 +0.0000000001 >> 11 +0.0000000001 >> 12 +0.0000000001 >> 13 +0.0000000001 >> 14 +0.0000000001 >> 15 +0.0000000001 >> 16 +0.0000000001 >> 17 +0.0000000001 >> 18 +0.0000000001 >> 19 +1 >> 0 +1 >> 1 +1 >> 2 +1 >> 3 +1 >> 4 +1 >> 5 +1 >> 6 +1 >> 7 +1 >> 8 +1 >> 9 +1 >> 10 +1 >> 11 +1 >> 12 +1 >> 13 +1 >> 14 +1 >> 15 +1 >> 16 +1 >> 17 +1 >> 18 +1 >> 19 +1.1 >> 0 +1.1 >> 1 +1.1 >> 2 +1.1 >> 3 +1.1 >> 4 +1.1 >> 5 +1.1 >> 6 +1.1 >> 7 +1.1 >> 8 +1.1 >> 9 +1.1 >> 10 +1.1 >> 11 +1.1 >> 12 +1.1 >> 13 +1.1 >> 14 +1.1 >> 15 +1.1 >> 16 +1.1 >> 17 +1.1 >> 18 +1.1 >> 19 +1.01 >> 0 +1.01 >> 1 +1.01 >> 2 +1.01 >> 3 +1.01 >> 4 +1.01 >> 5 +1.01 >> 6 +1.01 >> 7 +1.01 >> 8 +1.01 >> 9 +1.01 >> 10 +1.01 >> 11 +1.01 >> 12 +1.01 >> 13 +1.01 >> 14 +1.01 >> 15 +1.01 >> 16 +1.01 >> 17 +1.01 >> 18 +1.01 >> 19 +1.001 >> 0 +1.001 >> 1 +1.001 >> 2 +1.001 >> 3 +1.001 >> 4 +1.001 >> 5 +1.001 >> 6 +1.001 >> 7 +1.001 >> 8 +1.001 >> 9 +1.001 >> 10 +1.001 >> 11 +1.001 >> 12 +1.001 >> 13 +1.001 >> 14 +1.001 >> 15 +1.001 >> 16 +1.001 >> 17 +1.001 >> 18 +1.001 >> 19 +1.0001 >> 0 +1.0001 >> 1 +1.0001 >> 2 +1.0001 >> 3 +1.0001 >> 4 +1.0001 >> 5 +1.0001 >> 6 +1.0001 >> 7 +1.0001 >> 8 +1.0001 >> 9 +1.0001 >> 10 +1.0001 >> 11 +1.0001 >> 12 +1.0001 >> 13 +1.0001 >> 14 +1.0001 >> 15 +1.0001 >> 16 +1.0001 >> 17 +1.0001 >> 18 +1.0001 >> 19 +1.00001 >> 0 +1.00001 >> 1 +1.00001 >> 2 +1.00001 >> 3 +1.00001 >> 4 +1.00001 >> 5 +1.00001 >> 6 +1.00001 >> 7 +1.00001 >> 8 +1.00001 >> 9 +1.00001 >> 10 +1.00001 >> 11 +1.00001 >> 12 +1.00001 >> 13 +1.00001 >> 14 +1.00001 >> 15 +1.00001 >> 16 +1.00001 >> 17 +1.00001 >> 18 +1.00001 >> 19 +1.000001 >> 0 +1.000001 >> 1 +1.000001 >> 2 +1.000001 >> 3 +1.000001 >> 4 +1.000001 >> 5 +1.000001 >> 6 +1.000001 >> 7 +1.000001 >> 8 +1.000001 >> 9 +1.000001 >> 10 +1.000001 >> 11 +1.000001 >> 12 +1.000001 >> 13 +1.000001 >> 14 +1.000001 >> 15 +1.000001 >> 16 +1.000001 >> 17 +1.000001 >> 18 +1.000001 >> 19 +1.0000001 >> 0 +1.0000001 >> 1 +1.0000001 >> 2 +1.0000001 >> 3 +1.0000001 >> 4 +1.0000001 >> 5 +1.0000001 >> 6 +1.0000001 >> 7 +1.0000001 >> 8 +1.0000001 >> 9 +1.0000001 >> 10 +1.0000001 >> 11 +1.0000001 >> 12 +1.0000001 >> 13 +1.0000001 >> 14 +1.0000001 >> 15 +1.0000001 >> 16 +1.0000001 >> 17 +1.0000001 >> 18 +1.0000001 >> 19 +1.00000001 >> 0 +1.00000001 >> 1 +1.00000001 >> 2 +1.00000001 >> 3 +1.00000001 >> 4 +1.00000001 >> 5 +1.00000001 >> 6 +1.00000001 >> 7 +1.00000001 >> 8 +1.00000001 >> 9 +1.00000001 >> 10 +1.00000001 >> 11 +1.00000001 >> 12 +1.00000001 >> 13 +1.00000001 >> 14 +1.00000001 >> 15 +1.00000001 >> 16 +1.00000001 >> 17 +1.00000001 >> 18 +1.00000001 >> 19 +1.000000001 >> 0 +1.000000001 >> 1 +1.000000001 >> 2 +1.000000001 >> 3 +1.000000001 >> 4 +1.000000001 >> 5 +1.000000001 >> 6 +1.000000001 >> 7 +1.000000001 >> 8 +1.000000001 >> 9 +1.000000001 >> 10 +1.000000001 >> 11 +1.000000001 >> 12 +1.000000001 >> 13 +1.000000001 >> 14 +1.000000001 >> 15 +1.000000001 >> 16 +1.000000001 >> 17 +1.000000001 >> 18 +1.000000001 >> 19 +1.0000000001 >> 0 +1.0000000001 >> 1 +1.0000000001 >> 2 +1.0000000001 >> 3 +1.0000000001 >> 4 +1.0000000001 >> 5 +1.0000000001 >> 6 +1.0000000001 >> 7 +1.0000000001 >> 8 +1.0000000001 >> 9 +1.0000000001 >> 10 +1.0000000001 >> 11 +1.0000000001 >> 12 +1.0000000001 >> 13 +1.0000000001 >> 14 +1.0000000001 >> 15 +1.0000000001 >> 16 +1.0000000001 >> 17 +1.0000000001 >> 18 +1.0000000001 >> 19 +10 >> 0 +10 >> 1 +10 >> 2 +10 >> 3 +10 >> 4 +10 >> 5 +10 >> 6 +10 >> 7 +10 >> 8 +10 >> 9 +10 >> 10 +10 >> 11 +10 >> 12 +10 >> 13 +10 >> 14 +10 >> 15 +10 >> 16 +10 >> 17 +10 >> 18 +10 >> 19 +10.1 >> 0 +10.1 >> 1 +10.1 >> 2 +10.1 >> 3 +10.1 >> 4 +10.1 >> 5 +10.1 >> 6 +10.1 >> 7 +10.1 >> 8 +10.1 >> 9 +10.1 >> 10 +10.1 >> 11 +10.1 >> 12 +10.1 >> 13 +10.1 >> 14 +10.1 >> 15 +10.1 >> 16 +10.1 >> 17 +10.1 >> 18 +10.1 >> 19 +10.01 >> 0 +10.01 >> 1 +10.01 >> 2 +10.01 >> 3 +10.01 >> 4 +10.01 >> 5 +10.01 >> 6 +10.01 >> 7 +10.01 >> 8 +10.01 >> 9 +10.01 >> 10 +10.01 >> 11 +10.01 >> 12 +10.01 >> 13 +10.01 >> 14 +10.01 >> 15 +10.01 >> 16 +10.01 >> 17 +10.01 >> 18 +10.01 >> 19 +10.001 >> 0 +10.001 >> 1 +10.001 >> 2 +10.001 >> 3 +10.001 >> 4 +10.001 >> 5 +10.001 >> 6 +10.001 >> 7 +10.001 >> 8 +10.001 >> 9 +10.001 >> 10 +10.001 >> 11 +10.001 >> 12 +10.001 >> 13 +10.001 >> 14 +10.001 >> 15 +10.001 >> 16 +10.001 >> 17 +10.001 >> 18 +10.001 >> 19 +10.0001 >> 0 +10.0001 >> 1 +10.0001 >> 2 +10.0001 >> 3 +10.0001 >> 4 +10.0001 >> 5 +10.0001 >> 6 +10.0001 >> 7 +10.0001 >> 8 +10.0001 >> 9 +10.0001 >> 10 +10.0001 >> 11 +10.0001 >> 12 +10.0001 >> 13 +10.0001 >> 14 +10.0001 >> 15 +10.0001 >> 16 +10.0001 >> 17 +10.0001 >> 18 +10.0001 >> 19 +10.00001 >> 0 +10.00001 >> 1 +10.00001 >> 2 +10.00001 >> 3 +10.00001 >> 4 +10.00001 >> 5 +10.00001 >> 6 +10.00001 >> 7 +10.00001 >> 8 +10.00001 >> 9 +10.00001 >> 10 +10.00001 >> 11 +10.00001 >> 12 +10.00001 >> 13 +10.00001 >> 14 +10.00001 >> 15 +10.00001 >> 16 +10.00001 >> 17 +10.00001 >> 18 +10.00001 >> 19 +10.000001 >> 0 +10.000001 >> 1 +10.000001 >> 2 +10.000001 >> 3 +10.000001 >> 4 +10.000001 >> 5 +10.000001 >> 6 +10.000001 >> 7 +10.000001 >> 8 +10.000001 >> 9 +10.000001 >> 10 +10.000001 >> 11 +10.000001 >> 12 +10.000001 >> 13 +10.000001 >> 14 +10.000001 >> 15 +10.000001 >> 16 +10.000001 >> 17 +10.000001 >> 18 +10.000001 >> 19 +10.0000001 >> 0 +10.0000001 >> 1 +10.0000001 >> 2 +10.0000001 >> 3 +10.0000001 >> 4 +10.0000001 >> 5 +10.0000001 >> 6 +10.0000001 >> 7 +10.0000001 >> 8 +10.0000001 >> 9 +10.0000001 >> 10 +10.0000001 >> 11 +10.0000001 >> 12 +10.0000001 >> 13 +10.0000001 >> 14 +10.0000001 >> 15 +10.0000001 >> 16 +10.0000001 >> 17 +10.0000001 >> 18 +10.0000001 >> 19 +10.00000001 >> 0 +10.00000001 >> 1 +10.00000001 >> 2 +10.00000001 >> 3 +10.00000001 >> 4 +10.00000001 >> 5 +10.00000001 >> 6 +10.00000001 >> 7 +10.00000001 >> 8 +10.00000001 >> 9 +10.00000001 >> 10 +10.00000001 >> 11 +10.00000001 >> 12 +10.00000001 >> 13 +10.00000001 >> 14 +10.00000001 >> 15 +10.00000001 >> 16 +10.00000001 >> 17 +10.00000001 >> 18 +10.00000001 >> 19 +10.000000001 >> 0 +10.000000001 >> 1 +10.000000001 >> 2 +10.000000001 >> 3 +10.000000001 >> 4 +10.000000001 >> 5 +10.000000001 >> 6 +10.000000001 >> 7 +10.000000001 >> 8 +10.000000001 >> 9 +10.000000001 >> 10 +10.000000001 >> 11 +10.000000001 >> 12 +10.000000001 >> 13 +10.000000001 >> 14 +10.000000001 >> 15 +10.000000001 >> 16 +10.000000001 >> 17 +10.000000001 >> 18 +10.000000001 >> 19 +10.0000000001 >> 0 +10.0000000001 >> 1 +10.0000000001 >> 2 +10.0000000001 >> 3 +10.0000000001 >> 4 +10.0000000001 >> 5 +10.0000000001 >> 6 +10.0000000001 >> 7 +10.0000000001 >> 8 +10.0000000001 >> 9 +10.0000000001 >> 10 +10.0000000001 >> 11 +10.0000000001 >> 12 +10.0000000001 >> 13 +10.0000000001 >> 14 +10.0000000001 >> 15 +10.0000000001 >> 16 +10.0000000001 >> 17 +10.0000000001 >> 18 +10.0000000001 >> 19 +100 >> 0 +100 >> 1 +100 >> 2 +100 >> 3 +100 >> 4 +100 >> 5 +100 >> 6 +100 >> 7 +100 >> 8 +100 >> 9 +100 >> 10 +100 >> 11 +100 >> 12 +100 >> 13 +100 >> 14 +100 >> 15 +100 >> 16 +100 >> 17 +100 >> 18 +100 >> 19 +100.1 >> 0 +100.1 >> 1 +100.1 >> 2 +100.1 >> 3 +100.1 >> 4 +100.1 >> 5 +100.1 >> 6 +100.1 >> 7 +100.1 >> 8 +100.1 >> 9 +100.1 >> 10 +100.1 >> 11 +100.1 >> 12 +100.1 >> 13 +100.1 >> 14 +100.1 >> 15 +100.1 >> 16 +100.1 >> 17 +100.1 >> 18 +100.1 >> 19 +100.01 >> 0 +100.01 >> 1 +100.01 >> 2 +100.01 >> 3 +100.01 >> 4 +100.01 >> 5 +100.01 >> 6 +100.01 >> 7 +100.01 >> 8 +100.01 >> 9 +100.01 >> 10 +100.01 >> 11 +100.01 >> 12 +100.01 >> 13 +100.01 >> 14 +100.01 >> 15 +100.01 >> 16 +100.01 >> 17 +100.01 >> 18 +100.01 >> 19 +100.001 >> 0 +100.001 >> 1 +100.001 >> 2 +100.001 >> 3 +100.001 >> 4 +100.001 >> 5 +100.001 >> 6 +100.001 >> 7 +100.001 >> 8 +100.001 >> 9 +100.001 >> 10 +100.001 >> 11 +100.001 >> 12 +100.001 >> 13 +100.001 >> 14 +100.001 >> 15 +100.001 >> 16 +100.001 >> 17 +100.001 >> 18 +100.001 >> 19 +100.0001 >> 0 +100.0001 >> 1 +100.0001 >> 2 +100.0001 >> 3 +100.0001 >> 4 +100.0001 >> 5 +100.0001 >> 6 +100.0001 >> 7 +100.0001 >> 8 +100.0001 >> 9 +100.0001 >> 10 +100.0001 >> 11 +100.0001 >> 12 +100.0001 >> 13 +100.0001 >> 14 +100.0001 >> 15 +100.0001 >> 16 +100.0001 >> 17 +100.0001 >> 18 +100.0001 >> 19 +100.00001 >> 0 +100.00001 >> 1 +100.00001 >> 2 +100.00001 >> 3 +100.00001 >> 4 +100.00001 >> 5 +100.00001 >> 6 +100.00001 >> 7 +100.00001 >> 8 +100.00001 >> 9 +100.00001 >> 10 +100.00001 >> 11 +100.00001 >> 12 +100.00001 >> 13 +100.00001 >> 14 +100.00001 >> 15 +100.00001 >> 16 +100.00001 >> 17 +100.00001 >> 18 +100.00001 >> 19 +100.000001 >> 0 +100.000001 >> 1 +100.000001 >> 2 +100.000001 >> 3 +100.000001 >> 4 +100.000001 >> 5 +100.000001 >> 6 +100.000001 >> 7 +100.000001 >> 8 +100.000001 >> 9 +100.000001 >> 10 +100.000001 >> 11 +100.000001 >> 12 +100.000001 >> 13 +100.000001 >> 14 +100.000001 >> 15 +100.000001 >> 16 +100.000001 >> 17 +100.000001 >> 18 +100.000001 >> 19 +100.0000001 >> 0 +100.0000001 >> 1 +100.0000001 >> 2 +100.0000001 >> 3 +100.0000001 >> 4 +100.0000001 >> 5 +100.0000001 >> 6 +100.0000001 >> 7 +100.0000001 >> 8 +100.0000001 >> 9 +100.0000001 >> 10 +100.0000001 >> 11 +100.0000001 >> 12 +100.0000001 >> 13 +100.0000001 >> 14 +100.0000001 >> 15 +100.0000001 >> 16 +100.0000001 >> 17 +100.0000001 >> 18 +100.0000001 >> 19 +100.00000001 >> 0 +100.00000001 >> 1 +100.00000001 >> 2 +100.00000001 >> 3 +100.00000001 >> 4 +100.00000001 >> 5 +100.00000001 >> 6 +100.00000001 >> 7 +100.00000001 >> 8 +100.00000001 >> 9 +100.00000001 >> 10 +100.00000001 >> 11 +100.00000001 >> 12 +100.00000001 >> 13 +100.00000001 >> 14 +100.00000001 >> 15 +100.00000001 >> 16 +100.00000001 >> 17 +100.00000001 >> 18 +100.00000001 >> 19 +100.000000001 >> 0 +100.000000001 >> 1 +100.000000001 >> 2 +100.000000001 >> 3 +100.000000001 >> 4 +100.000000001 >> 5 +100.000000001 >> 6 +100.000000001 >> 7 +100.000000001 >> 8 +100.000000001 >> 9 +100.000000001 >> 10 +100.000000001 >> 11 +100.000000001 >> 12 +100.000000001 >> 13 +100.000000001 >> 14 +100.000000001 >> 15 +100.000000001 >> 16 +100.000000001 >> 17 +100.000000001 >> 18 +100.000000001 >> 19 +100.0000000001 >> 0 +100.0000000001 >> 1 +100.0000000001 >> 2 +100.0000000001 >> 3 +100.0000000001 >> 4 +100.0000000001 >> 5 +100.0000000001 >> 6 +100.0000000001 >> 7 +100.0000000001 >> 8 +100.0000000001 >> 9 +100.0000000001 >> 10 +100.0000000001 >> 11 +100.0000000001 >> 12 +100.0000000001 >> 13 +100.0000000001 >> 14 +100.0000000001 >> 15 +100.0000000001 >> 16 +100.0000000001 >> 17 +100.0000000001 >> 18 +100.0000000001 >> 19 +1000 >> 0 +1000 >> 1 +1000 >> 2 +1000 >> 3 +1000 >> 4 +1000 >> 5 +1000 >> 6 +1000 >> 7 +1000 >> 8 +1000 >> 9 +1000 >> 10 +1000 >> 11 +1000 >> 12 +1000 >> 13 +1000 >> 14 +1000 >> 15 +1000 >> 16 +1000 >> 17 +1000 >> 18 +1000 >> 19 +1000.1 >> 0 +1000.1 >> 1 +1000.1 >> 2 +1000.1 >> 3 +1000.1 >> 4 +1000.1 >> 5 +1000.1 >> 6 +1000.1 >> 7 +1000.1 >> 8 +1000.1 >> 9 +1000.1 >> 10 +1000.1 >> 11 +1000.1 >> 12 +1000.1 >> 13 +1000.1 >> 14 +1000.1 >> 15 +1000.1 >> 16 +1000.1 >> 17 +1000.1 >> 18 +1000.1 >> 19 +1000.01 >> 0 +1000.01 >> 1 +1000.01 >> 2 +1000.01 >> 3 +1000.01 >> 4 +1000.01 >> 5 +1000.01 >> 6 +1000.01 >> 7 +1000.01 >> 8 +1000.01 >> 9 +1000.01 >> 10 +1000.01 >> 11 +1000.01 >> 12 +1000.01 >> 13 +1000.01 >> 14 +1000.01 >> 15 +1000.01 >> 16 +1000.01 >> 17 +1000.01 >> 18 +1000.01 >> 19 +1000.001 >> 0 +1000.001 >> 1 +1000.001 >> 2 +1000.001 >> 3 +1000.001 >> 4 +1000.001 >> 5 +1000.001 >> 6 +1000.001 >> 7 +1000.001 >> 8 +1000.001 >> 9 +1000.001 >> 10 +1000.001 >> 11 +1000.001 >> 12 +1000.001 >> 13 +1000.001 >> 14 +1000.001 >> 15 +1000.001 >> 16 +1000.001 >> 17 +1000.001 >> 18 +1000.001 >> 19 +1000.0001 >> 0 +1000.0001 >> 1 +1000.0001 >> 2 +1000.0001 >> 3 +1000.0001 >> 4 +1000.0001 >> 5 +1000.0001 >> 6 +1000.0001 >> 7 +1000.0001 >> 8 +1000.0001 >> 9 +1000.0001 >> 10 +1000.0001 >> 11 +1000.0001 >> 12 +1000.0001 >> 13 +1000.0001 >> 14 +1000.0001 >> 15 +1000.0001 >> 16 +1000.0001 >> 17 +1000.0001 >> 18 +1000.0001 >> 19 +1000.00001 >> 0 +1000.00001 >> 1 +1000.00001 >> 2 +1000.00001 >> 3 +1000.00001 >> 4 +1000.00001 >> 5 +1000.00001 >> 6 +1000.00001 >> 7 +1000.00001 >> 8 +1000.00001 >> 9 +1000.00001 >> 10 +1000.00001 >> 11 +1000.00001 >> 12 +1000.00001 >> 13 +1000.00001 >> 14 +1000.00001 >> 15 +1000.00001 >> 16 +1000.00001 >> 17 +1000.00001 >> 18 +1000.00001 >> 19 +1000.000001 >> 0 +1000.000001 >> 1 +1000.000001 >> 2 +1000.000001 >> 3 +1000.000001 >> 4 +1000.000001 >> 5 +1000.000001 >> 6 +1000.000001 >> 7 +1000.000001 >> 8 +1000.000001 >> 9 +1000.000001 >> 10 +1000.000001 >> 11 +1000.000001 >> 12 +1000.000001 >> 13 +1000.000001 >> 14 +1000.000001 >> 15 +1000.000001 >> 16 +1000.000001 >> 17 +1000.000001 >> 18 +1000.000001 >> 19 +1000.0000001 >> 0 +1000.0000001 >> 1 +1000.0000001 >> 2 +1000.0000001 >> 3 +1000.0000001 >> 4 +1000.0000001 >> 5 +1000.0000001 >> 6 +1000.0000001 >> 7 +1000.0000001 >> 8 +1000.0000001 >> 9 +1000.0000001 >> 10 +1000.0000001 >> 11 +1000.0000001 >> 12 +1000.0000001 >> 13 +1000.0000001 >> 14 +1000.0000001 >> 15 +1000.0000001 >> 16 +1000.0000001 >> 17 +1000.0000001 >> 18 +1000.0000001 >> 19 +1000.00000001 >> 0 +1000.00000001 >> 1 +1000.00000001 >> 2 +1000.00000001 >> 3 +1000.00000001 >> 4 +1000.00000001 >> 5 +1000.00000001 >> 6 +1000.00000001 >> 7 +1000.00000001 >> 8 +1000.00000001 >> 9 +1000.00000001 >> 10 +1000.00000001 >> 11 +1000.00000001 >> 12 +1000.00000001 >> 13 +1000.00000001 >> 14 +1000.00000001 >> 15 +1000.00000001 >> 16 +1000.00000001 >> 17 +1000.00000001 >> 18 +1000.00000001 >> 19 +1000.000000001 >> 0 +1000.000000001 >> 1 +1000.000000001 >> 2 +1000.000000001 >> 3 +1000.000000001 >> 4 +1000.000000001 >> 5 +1000.000000001 >> 6 +1000.000000001 >> 7 +1000.000000001 >> 8 +1000.000000001 >> 9 +1000.000000001 >> 10 +1000.000000001 >> 11 +1000.000000001 >> 12 +1000.000000001 >> 13 +1000.000000001 >> 14 +1000.000000001 >> 15 +1000.000000001 >> 16 +1000.000000001 >> 17 +1000.000000001 >> 18 +1000.000000001 >> 19 +1000.0000000001 >> 0 +1000.0000000001 >> 1 +1000.0000000001 >> 2 +1000.0000000001 >> 3 +1000.0000000001 >> 4 +1000.0000000001 >> 5 +1000.0000000001 >> 6 +1000.0000000001 >> 7 +1000.0000000001 >> 8 +1000.0000000001 >> 9 +1000.0000000001 >> 10 +1000.0000000001 >> 11 +1000.0000000001 >> 12 +1000.0000000001 >> 13 +1000.0000000001 >> 14 +1000.0000000001 >> 15 +1000.0000000001 >> 16 +1000.0000000001 >> 17 +1000.0000000001 >> 18 +1000.0000000001 >> 19 +10000 >> 0 +10000 >> 1 +10000 >> 2 +10000 >> 3 +10000 >> 4 +10000 >> 5 +10000 >> 6 +10000 >> 7 +10000 >> 8 +10000 >> 9 +10000 >> 10 +10000 >> 11 +10000 >> 12 +10000 >> 13 +10000 >> 14 +10000 >> 15 +10000 >> 16 +10000 >> 17 +10000 >> 18 +10000 >> 19 +10000.1 >> 0 +10000.1 >> 1 +10000.1 >> 2 +10000.1 >> 3 +10000.1 >> 4 +10000.1 >> 5 +10000.1 >> 6 +10000.1 >> 7 +10000.1 >> 8 +10000.1 >> 9 +10000.1 >> 10 +10000.1 >> 11 +10000.1 >> 12 +10000.1 >> 13 +10000.1 >> 14 +10000.1 >> 15 +10000.1 >> 16 +10000.1 >> 17 +10000.1 >> 18 +10000.1 >> 19 +10000.01 >> 0 +10000.01 >> 1 +10000.01 >> 2 +10000.01 >> 3 +10000.01 >> 4 +10000.01 >> 5 +10000.01 >> 6 +10000.01 >> 7 +10000.01 >> 8 +10000.01 >> 9 +10000.01 >> 10 +10000.01 >> 11 +10000.01 >> 12 +10000.01 >> 13 +10000.01 >> 14 +10000.01 >> 15 +10000.01 >> 16 +10000.01 >> 17 +10000.01 >> 18 +10000.01 >> 19 +10000.001 >> 0 +10000.001 >> 1 +10000.001 >> 2 +10000.001 >> 3 +10000.001 >> 4 +10000.001 >> 5 +10000.001 >> 6 +10000.001 >> 7 +10000.001 >> 8 +10000.001 >> 9 +10000.001 >> 10 +10000.001 >> 11 +10000.001 >> 12 +10000.001 >> 13 +10000.001 >> 14 +10000.001 >> 15 +10000.001 >> 16 +10000.001 >> 17 +10000.001 >> 18 +10000.001 >> 19 +10000.0001 >> 0 +10000.0001 >> 1 +10000.0001 >> 2 +10000.0001 >> 3 +10000.0001 >> 4 +10000.0001 >> 5 +10000.0001 >> 6 +10000.0001 >> 7 +10000.0001 >> 8 +10000.0001 >> 9 +10000.0001 >> 10 +10000.0001 >> 11 +10000.0001 >> 12 +10000.0001 >> 13 +10000.0001 >> 14 +10000.0001 >> 15 +10000.0001 >> 16 +10000.0001 >> 17 +10000.0001 >> 18 +10000.0001 >> 19 +10000.00001 >> 0 +10000.00001 >> 1 +10000.00001 >> 2 +10000.00001 >> 3 +10000.00001 >> 4 +10000.00001 >> 5 +10000.00001 >> 6 +10000.00001 >> 7 +10000.00001 >> 8 +10000.00001 >> 9 +10000.00001 >> 10 +10000.00001 >> 11 +10000.00001 >> 12 +10000.00001 >> 13 +10000.00001 >> 14 +10000.00001 >> 15 +10000.00001 >> 16 +10000.00001 >> 17 +10000.00001 >> 18 +10000.00001 >> 19 +10000.000001 >> 0 +10000.000001 >> 1 +10000.000001 >> 2 +10000.000001 >> 3 +10000.000001 >> 4 +10000.000001 >> 5 +10000.000001 >> 6 +10000.000001 >> 7 +10000.000001 >> 8 +10000.000001 >> 9 +10000.000001 >> 10 +10000.000001 >> 11 +10000.000001 >> 12 +10000.000001 >> 13 +10000.000001 >> 14 +10000.000001 >> 15 +10000.000001 >> 16 +10000.000001 >> 17 +10000.000001 >> 18 +10000.000001 >> 19 +10000.0000001 >> 0 +10000.0000001 >> 1 +10000.0000001 >> 2 +10000.0000001 >> 3 +10000.0000001 >> 4 +10000.0000001 >> 5 +10000.0000001 >> 6 +10000.0000001 >> 7 +10000.0000001 >> 8 +10000.0000001 >> 9 +10000.0000001 >> 10 +10000.0000001 >> 11 +10000.0000001 >> 12 +10000.0000001 >> 13 +10000.0000001 >> 14 +10000.0000001 >> 15 +10000.0000001 >> 16 +10000.0000001 >> 17 +10000.0000001 >> 18 +10000.0000001 >> 19 +10000.00000001 >> 0 +10000.00000001 >> 1 +10000.00000001 >> 2 +10000.00000001 >> 3 +10000.00000001 >> 4 +10000.00000001 >> 5 +10000.00000001 >> 6 +10000.00000001 >> 7 +10000.00000001 >> 8 +10000.00000001 >> 9 +10000.00000001 >> 10 +10000.00000001 >> 11 +10000.00000001 >> 12 +10000.00000001 >> 13 +10000.00000001 >> 14 +10000.00000001 >> 15 +10000.00000001 >> 16 +10000.00000001 >> 17 +10000.00000001 >> 18 +10000.00000001 >> 19 +10000.000000001 >> 0 +10000.000000001 >> 1 +10000.000000001 >> 2 +10000.000000001 >> 3 +10000.000000001 >> 4 +10000.000000001 >> 5 +10000.000000001 >> 6 +10000.000000001 >> 7 +10000.000000001 >> 8 +10000.000000001 >> 9 +10000.000000001 >> 10 +10000.000000001 >> 11 +10000.000000001 >> 12 +10000.000000001 >> 13 +10000.000000001 >> 14 +10000.000000001 >> 15 +10000.000000001 >> 16 +10000.000000001 >> 17 +10000.000000001 >> 18 +10000.000000001 >> 19 +10000.0000000001 >> 0 +10000.0000000001 >> 1 +10000.0000000001 >> 2 +10000.0000000001 >> 3 +10000.0000000001 >> 4 +10000.0000000001 >> 5 +10000.0000000001 >> 6 +10000.0000000001 >> 7 +10000.0000000001 >> 8 +10000.0000000001 >> 9 +10000.0000000001 >> 10 +10000.0000000001 >> 11 +10000.0000000001 >> 12 +10000.0000000001 >> 13 +10000.0000000001 >> 14 +10000.0000000001 >> 15 +10000.0000000001 >> 16 +10000.0000000001 >> 17 +10000.0000000001 >> 18 +10000.0000000001 >> 19 +100000 >> 0 +100000 >> 1 +100000 >> 2 +100000 >> 3 +100000 >> 4 +100000 >> 5 +100000 >> 6 +100000 >> 7 +100000 >> 8 +100000 >> 9 +100000 >> 10 +100000 >> 11 +100000 >> 12 +100000 >> 13 +100000 >> 14 +100000 >> 15 +100000 >> 16 +100000 >> 17 +100000 >> 18 +100000 >> 19 +100000.1 >> 0 +100000.1 >> 1 +100000.1 >> 2 +100000.1 >> 3 +100000.1 >> 4 +100000.1 >> 5 +100000.1 >> 6 +100000.1 >> 7 +100000.1 >> 8 +100000.1 >> 9 +100000.1 >> 10 +100000.1 >> 11 +100000.1 >> 12 +100000.1 >> 13 +100000.1 >> 14 +100000.1 >> 15 +100000.1 >> 16 +100000.1 >> 17 +100000.1 >> 18 +100000.1 >> 19 +100000.01 >> 0 +100000.01 >> 1 +100000.01 >> 2 +100000.01 >> 3 +100000.01 >> 4 +100000.01 >> 5 +100000.01 >> 6 +100000.01 >> 7 +100000.01 >> 8 +100000.01 >> 9 +100000.01 >> 10 +100000.01 >> 11 +100000.01 >> 12 +100000.01 >> 13 +100000.01 >> 14 +100000.01 >> 15 +100000.01 >> 16 +100000.01 >> 17 +100000.01 >> 18 +100000.01 >> 19 +100000.001 >> 0 +100000.001 >> 1 +100000.001 >> 2 +100000.001 >> 3 +100000.001 >> 4 +100000.001 >> 5 +100000.001 >> 6 +100000.001 >> 7 +100000.001 >> 8 +100000.001 >> 9 +100000.001 >> 10 +100000.001 >> 11 +100000.001 >> 12 +100000.001 >> 13 +100000.001 >> 14 +100000.001 >> 15 +100000.001 >> 16 +100000.001 >> 17 +100000.001 >> 18 +100000.001 >> 19 +100000.0001 >> 0 +100000.0001 >> 1 +100000.0001 >> 2 +100000.0001 >> 3 +100000.0001 >> 4 +100000.0001 >> 5 +100000.0001 >> 6 +100000.0001 >> 7 +100000.0001 >> 8 +100000.0001 >> 9 +100000.0001 >> 10 +100000.0001 >> 11 +100000.0001 >> 12 +100000.0001 >> 13 +100000.0001 >> 14 +100000.0001 >> 15 +100000.0001 >> 16 +100000.0001 >> 17 +100000.0001 >> 18 +100000.0001 >> 19 +100000.00001 >> 0 +100000.00001 >> 1 +100000.00001 >> 2 +100000.00001 >> 3 +100000.00001 >> 4 +100000.00001 >> 5 +100000.00001 >> 6 +100000.00001 >> 7 +100000.00001 >> 8 +100000.00001 >> 9 +100000.00001 >> 10 +100000.00001 >> 11 +100000.00001 >> 12 +100000.00001 >> 13 +100000.00001 >> 14 +100000.00001 >> 15 +100000.00001 >> 16 +100000.00001 >> 17 +100000.00001 >> 18 +100000.00001 >> 19 +100000.000001 >> 0 +100000.000001 >> 1 +100000.000001 >> 2 +100000.000001 >> 3 +100000.000001 >> 4 +100000.000001 >> 5 +100000.000001 >> 6 +100000.000001 >> 7 +100000.000001 >> 8 +100000.000001 >> 9 +100000.000001 >> 10 +100000.000001 >> 11 +100000.000001 >> 12 +100000.000001 >> 13 +100000.000001 >> 14 +100000.000001 >> 15 +100000.000001 >> 16 +100000.000001 >> 17 +100000.000001 >> 18 +100000.000001 >> 19 +100000.0000001 >> 0 +100000.0000001 >> 1 +100000.0000001 >> 2 +100000.0000001 >> 3 +100000.0000001 >> 4 +100000.0000001 >> 5 +100000.0000001 >> 6 +100000.0000001 >> 7 +100000.0000001 >> 8 +100000.0000001 >> 9 +100000.0000001 >> 10 +100000.0000001 >> 11 +100000.0000001 >> 12 +100000.0000001 >> 13 +100000.0000001 >> 14 +100000.0000001 >> 15 +100000.0000001 >> 16 +100000.0000001 >> 17 +100000.0000001 >> 18 +100000.0000001 >> 19 +100000.00000001 >> 0 +100000.00000001 >> 1 +100000.00000001 >> 2 +100000.00000001 >> 3 +100000.00000001 >> 4 +100000.00000001 >> 5 +100000.00000001 >> 6 +100000.00000001 >> 7 +100000.00000001 >> 8 +100000.00000001 >> 9 +100000.00000001 >> 10 +100000.00000001 >> 11 +100000.00000001 >> 12 +100000.00000001 >> 13 +100000.00000001 >> 14 +100000.00000001 >> 15 +100000.00000001 >> 16 +100000.00000001 >> 17 +100000.00000001 >> 18 +100000.00000001 >> 19 +100000.000000001 >> 0 +100000.000000001 >> 1 +100000.000000001 >> 2 +100000.000000001 >> 3 +100000.000000001 >> 4 +100000.000000001 >> 5 +100000.000000001 >> 6 +100000.000000001 >> 7 +100000.000000001 >> 8 +100000.000000001 >> 9 +100000.000000001 >> 10 +100000.000000001 >> 11 +100000.000000001 >> 12 +100000.000000001 >> 13 +100000.000000001 >> 14 +100000.000000001 >> 15 +100000.000000001 >> 16 +100000.000000001 >> 17 +100000.000000001 >> 18 +100000.000000001 >> 19 +100000.0000000001 >> 0 +100000.0000000001 >> 1 +100000.0000000001 >> 2 +100000.0000000001 >> 3 +100000.0000000001 >> 4 +100000.0000000001 >> 5 +100000.0000000001 >> 6 +100000.0000000001 >> 7 +100000.0000000001 >> 8 +100000.0000000001 >> 9 +100000.0000000001 >> 10 +100000.0000000001 >> 11 +100000.0000000001 >> 12 +100000.0000000001 >> 13 +100000.0000000001 >> 14 +100000.0000000001 >> 15 +100000.0000000001 >> 16 +100000.0000000001 >> 17 +100000.0000000001 >> 18 +100000.0000000001 >> 19 +1000000 >> 0 +1000000 >> 1 +1000000 >> 2 +1000000 >> 3 +1000000 >> 4 +1000000 >> 5 +1000000 >> 6 +1000000 >> 7 +1000000 >> 8 +1000000 >> 9 +1000000 >> 10 +1000000 >> 11 +1000000 >> 12 +1000000 >> 13 +1000000 >> 14 +1000000 >> 15 +1000000 >> 16 +1000000 >> 17 +1000000 >> 18 +1000000 >> 19 +1000000.1 >> 0 +1000000.1 >> 1 +1000000.1 >> 2 +1000000.1 >> 3 +1000000.1 >> 4 +1000000.1 >> 5 +1000000.1 >> 6 +1000000.1 >> 7 +1000000.1 >> 8 +1000000.1 >> 9 +1000000.1 >> 10 +1000000.1 >> 11 +1000000.1 >> 12 +1000000.1 >> 13 +1000000.1 >> 14 +1000000.1 >> 15 +1000000.1 >> 16 +1000000.1 >> 17 +1000000.1 >> 18 +1000000.1 >> 19 +1000000.01 >> 0 +1000000.01 >> 1 +1000000.01 >> 2 +1000000.01 >> 3 +1000000.01 >> 4 +1000000.01 >> 5 +1000000.01 >> 6 +1000000.01 >> 7 +1000000.01 >> 8 +1000000.01 >> 9 +1000000.01 >> 10 +1000000.01 >> 11 +1000000.01 >> 12 +1000000.01 >> 13 +1000000.01 >> 14 +1000000.01 >> 15 +1000000.01 >> 16 +1000000.01 >> 17 +1000000.01 >> 18 +1000000.01 >> 19 +1000000.001 >> 0 +1000000.001 >> 1 +1000000.001 >> 2 +1000000.001 >> 3 +1000000.001 >> 4 +1000000.001 >> 5 +1000000.001 >> 6 +1000000.001 >> 7 +1000000.001 >> 8 +1000000.001 >> 9 +1000000.001 >> 10 +1000000.001 >> 11 +1000000.001 >> 12 +1000000.001 >> 13 +1000000.001 >> 14 +1000000.001 >> 15 +1000000.001 >> 16 +1000000.001 >> 17 +1000000.001 >> 18 +1000000.001 >> 19 +1000000.0001 >> 0 +1000000.0001 >> 1 +1000000.0001 >> 2 +1000000.0001 >> 3 +1000000.0001 >> 4 +1000000.0001 >> 5 +1000000.0001 >> 6 +1000000.0001 >> 7 +1000000.0001 >> 8 +1000000.0001 >> 9 +1000000.0001 >> 10 +1000000.0001 >> 11 +1000000.0001 >> 12 +1000000.0001 >> 13 +1000000.0001 >> 14 +1000000.0001 >> 15 +1000000.0001 >> 16 +1000000.0001 >> 17 +1000000.0001 >> 18 +1000000.0001 >> 19 +1000000.00001 >> 0 +1000000.00001 >> 1 +1000000.00001 >> 2 +1000000.00001 >> 3 +1000000.00001 >> 4 +1000000.00001 >> 5 +1000000.00001 >> 6 +1000000.00001 >> 7 +1000000.00001 >> 8 +1000000.00001 >> 9 +1000000.00001 >> 10 +1000000.00001 >> 11 +1000000.00001 >> 12 +1000000.00001 >> 13 +1000000.00001 >> 14 +1000000.00001 >> 15 +1000000.00001 >> 16 +1000000.00001 >> 17 +1000000.00001 >> 18 +1000000.00001 >> 19 +1000000.000001 >> 0 +1000000.000001 >> 1 +1000000.000001 >> 2 +1000000.000001 >> 3 +1000000.000001 >> 4 +1000000.000001 >> 5 +1000000.000001 >> 6 +1000000.000001 >> 7 +1000000.000001 >> 8 +1000000.000001 >> 9 +1000000.000001 >> 10 +1000000.000001 >> 11 +1000000.000001 >> 12 +1000000.000001 >> 13 +1000000.000001 >> 14 +1000000.000001 >> 15 +1000000.000001 >> 16 +1000000.000001 >> 17 +1000000.000001 >> 18 +1000000.000001 >> 19 +1000000.0000001 >> 0 +1000000.0000001 >> 1 +1000000.0000001 >> 2 +1000000.0000001 >> 3 +1000000.0000001 >> 4 +1000000.0000001 >> 5 +1000000.0000001 >> 6 +1000000.0000001 >> 7 +1000000.0000001 >> 8 +1000000.0000001 >> 9 +1000000.0000001 >> 10 +1000000.0000001 >> 11 +1000000.0000001 >> 12 +1000000.0000001 >> 13 +1000000.0000001 >> 14 +1000000.0000001 >> 15 +1000000.0000001 >> 16 +1000000.0000001 >> 17 +1000000.0000001 >> 18 +1000000.0000001 >> 19 +1000000.00000001 >> 0 +1000000.00000001 >> 1 +1000000.00000001 >> 2 +1000000.00000001 >> 3 +1000000.00000001 >> 4 +1000000.00000001 >> 5 +1000000.00000001 >> 6 +1000000.00000001 >> 7 +1000000.00000001 >> 8 +1000000.00000001 >> 9 +1000000.00000001 >> 10 +1000000.00000001 >> 11 +1000000.00000001 >> 12 +1000000.00000001 >> 13 +1000000.00000001 >> 14 +1000000.00000001 >> 15 +1000000.00000001 >> 16 +1000000.00000001 >> 17 +1000000.00000001 >> 18 +1000000.00000001 >> 19 +1000000.000000001 >> 0 +1000000.000000001 >> 1 +1000000.000000001 >> 2 +1000000.000000001 >> 3 +1000000.000000001 >> 4 +1000000.000000001 >> 5 +1000000.000000001 >> 6 +1000000.000000001 >> 7 +1000000.000000001 >> 8 +1000000.000000001 >> 9 +1000000.000000001 >> 10 +1000000.000000001 >> 11 +1000000.000000001 >> 12 +1000000.000000001 >> 13 +1000000.000000001 >> 14 +1000000.000000001 >> 15 +1000000.000000001 >> 16 +1000000.000000001 >> 17 +1000000.000000001 >> 18 +1000000.000000001 >> 19 +1000000.0000000001 >> 0 +1000000.0000000001 >> 1 +1000000.0000000001 >> 2 +1000000.0000000001 >> 3 +1000000.0000000001 >> 4 +1000000.0000000001 >> 5 +1000000.0000000001 >> 6 +1000000.0000000001 >> 7 +1000000.0000000001 >> 8 +1000000.0000000001 >> 9 +1000000.0000000001 >> 10 +1000000.0000000001 >> 11 +1000000.0000000001 >> 12 +1000000.0000000001 >> 13 +1000000.0000000001 >> 14 +1000000.0000000001 >> 15 +1000000.0000000001 >> 16 +1000000.0000000001 >> 17 +1000000.0000000001 >> 18 +1000000.0000000001 >> 19 +10000000 >> 0 +10000000 >> 1 +10000000 >> 2 +10000000 >> 3 +10000000 >> 4 +10000000 >> 5 +10000000 >> 6 +10000000 >> 7 +10000000 >> 8 +10000000 >> 9 +10000000 >> 10 +10000000 >> 11 +10000000 >> 12 +10000000 >> 13 +10000000 >> 14 +10000000 >> 15 +10000000 >> 16 +10000000 >> 17 +10000000 >> 18 +10000000 >> 19 +10000000.1 >> 0 +10000000.1 >> 1 +10000000.1 >> 2 +10000000.1 >> 3 +10000000.1 >> 4 +10000000.1 >> 5 +10000000.1 >> 6 +10000000.1 >> 7 +10000000.1 >> 8 +10000000.1 >> 9 +10000000.1 >> 10 +10000000.1 >> 11 +10000000.1 >> 12 +10000000.1 >> 13 +10000000.1 >> 14 +10000000.1 >> 15 +10000000.1 >> 16 +10000000.1 >> 17 +10000000.1 >> 18 +10000000.1 >> 19 +10000000.01 >> 0 +10000000.01 >> 1 +10000000.01 >> 2 +10000000.01 >> 3 +10000000.01 >> 4 +10000000.01 >> 5 +10000000.01 >> 6 +10000000.01 >> 7 +10000000.01 >> 8 +10000000.01 >> 9 +10000000.01 >> 10 +10000000.01 >> 11 +10000000.01 >> 12 +10000000.01 >> 13 +10000000.01 >> 14 +10000000.01 >> 15 +10000000.01 >> 16 +10000000.01 >> 17 +10000000.01 >> 18 +10000000.01 >> 19 +10000000.001 >> 0 +10000000.001 >> 1 +10000000.001 >> 2 +10000000.001 >> 3 +10000000.001 >> 4 +10000000.001 >> 5 +10000000.001 >> 6 +10000000.001 >> 7 +10000000.001 >> 8 +10000000.001 >> 9 +10000000.001 >> 10 +10000000.001 >> 11 +10000000.001 >> 12 +10000000.001 >> 13 +10000000.001 >> 14 +10000000.001 >> 15 +10000000.001 >> 16 +10000000.001 >> 17 +10000000.001 >> 18 +10000000.001 >> 19 +10000000.0001 >> 0 +10000000.0001 >> 1 +10000000.0001 >> 2 +10000000.0001 >> 3 +10000000.0001 >> 4 +10000000.0001 >> 5 +10000000.0001 >> 6 +10000000.0001 >> 7 +10000000.0001 >> 8 +10000000.0001 >> 9 +10000000.0001 >> 10 +10000000.0001 >> 11 +10000000.0001 >> 12 +10000000.0001 >> 13 +10000000.0001 >> 14 +10000000.0001 >> 15 +10000000.0001 >> 16 +10000000.0001 >> 17 +10000000.0001 >> 18 +10000000.0001 >> 19 +10000000.00001 >> 0 +10000000.00001 >> 1 +10000000.00001 >> 2 +10000000.00001 >> 3 +10000000.00001 >> 4 +10000000.00001 >> 5 +10000000.00001 >> 6 +10000000.00001 >> 7 +10000000.00001 >> 8 +10000000.00001 >> 9 +10000000.00001 >> 10 +10000000.00001 >> 11 +10000000.00001 >> 12 +10000000.00001 >> 13 +10000000.00001 >> 14 +10000000.00001 >> 15 +10000000.00001 >> 16 +10000000.00001 >> 17 +10000000.00001 >> 18 +10000000.00001 >> 19 +10000000.000001 >> 0 +10000000.000001 >> 1 +10000000.000001 >> 2 +10000000.000001 >> 3 +10000000.000001 >> 4 +10000000.000001 >> 5 +10000000.000001 >> 6 +10000000.000001 >> 7 +10000000.000001 >> 8 +10000000.000001 >> 9 +10000000.000001 >> 10 +10000000.000001 >> 11 +10000000.000001 >> 12 +10000000.000001 >> 13 +10000000.000001 >> 14 +10000000.000001 >> 15 +10000000.000001 >> 16 +10000000.000001 >> 17 +10000000.000001 >> 18 +10000000.000001 >> 19 +10000000.0000001 >> 0 +10000000.0000001 >> 1 +10000000.0000001 >> 2 +10000000.0000001 >> 3 +10000000.0000001 >> 4 +10000000.0000001 >> 5 +10000000.0000001 >> 6 +10000000.0000001 >> 7 +10000000.0000001 >> 8 +10000000.0000001 >> 9 +10000000.0000001 >> 10 +10000000.0000001 >> 11 +10000000.0000001 >> 12 +10000000.0000001 >> 13 +10000000.0000001 >> 14 +10000000.0000001 >> 15 +10000000.0000001 >> 16 +10000000.0000001 >> 17 +10000000.0000001 >> 18 +10000000.0000001 >> 19 +10000000.00000001 >> 0 +10000000.00000001 >> 1 +10000000.00000001 >> 2 +10000000.00000001 >> 3 +10000000.00000001 >> 4 +10000000.00000001 >> 5 +10000000.00000001 >> 6 +10000000.00000001 >> 7 +10000000.00000001 >> 8 +10000000.00000001 >> 9 +10000000.00000001 >> 10 +10000000.00000001 >> 11 +10000000.00000001 >> 12 +10000000.00000001 >> 13 +10000000.00000001 >> 14 +10000000.00000001 >> 15 +10000000.00000001 >> 16 +10000000.00000001 >> 17 +10000000.00000001 >> 18 +10000000.00000001 >> 19 +10000000.000000001 >> 0 +10000000.000000001 >> 1 +10000000.000000001 >> 2 +10000000.000000001 >> 3 +10000000.000000001 >> 4 +10000000.000000001 >> 5 +10000000.000000001 >> 6 +10000000.000000001 >> 7 +10000000.000000001 >> 8 +10000000.000000001 >> 9 +10000000.000000001 >> 10 +10000000.000000001 >> 11 +10000000.000000001 >> 12 +10000000.000000001 >> 13 +10000000.000000001 >> 14 +10000000.000000001 >> 15 +10000000.000000001 >> 16 +10000000.000000001 >> 17 +10000000.000000001 >> 18 +10000000.000000001 >> 19 +10000000.0000000001 >> 0 +10000000.0000000001 >> 1 +10000000.0000000001 >> 2 +10000000.0000000001 >> 3 +10000000.0000000001 >> 4 +10000000.0000000001 >> 5 +10000000.0000000001 >> 6 +10000000.0000000001 >> 7 +10000000.0000000001 >> 8 +10000000.0000000001 >> 9 +10000000.0000000001 >> 10 +10000000.0000000001 >> 11 +10000000.0000000001 >> 12 +10000000.0000000001 >> 13 +10000000.0000000001 >> 14 +10000000.0000000001 >> 15 +10000000.0000000001 >> 16 +10000000.0000000001 >> 17 +10000000.0000000001 >> 18 +10000000.0000000001 >> 19 +100000000 >> 0 +100000000 >> 1 +100000000 >> 2 +100000000 >> 3 +100000000 >> 4 +100000000 >> 5 +100000000 >> 6 +100000000 >> 7 +100000000 >> 8 +100000000 >> 9 +100000000 >> 10 +100000000 >> 11 +100000000 >> 12 +100000000 >> 13 +100000000 >> 14 +100000000 >> 15 +100000000 >> 16 +100000000 >> 17 +100000000 >> 18 +100000000 >> 19 +100000000.1 >> 0 +100000000.1 >> 1 +100000000.1 >> 2 +100000000.1 >> 3 +100000000.1 >> 4 +100000000.1 >> 5 +100000000.1 >> 6 +100000000.1 >> 7 +100000000.1 >> 8 +100000000.1 >> 9 +100000000.1 >> 10 +100000000.1 >> 11 +100000000.1 >> 12 +100000000.1 >> 13 +100000000.1 >> 14 +100000000.1 >> 15 +100000000.1 >> 16 +100000000.1 >> 17 +100000000.1 >> 18 +100000000.1 >> 19 +100000000.01 >> 0 +100000000.01 >> 1 +100000000.01 >> 2 +100000000.01 >> 3 +100000000.01 >> 4 +100000000.01 >> 5 +100000000.01 >> 6 +100000000.01 >> 7 +100000000.01 >> 8 +100000000.01 >> 9 +100000000.01 >> 10 +100000000.01 >> 11 +100000000.01 >> 12 +100000000.01 >> 13 +100000000.01 >> 14 +100000000.01 >> 15 +100000000.01 >> 16 +100000000.01 >> 17 +100000000.01 >> 18 +100000000.01 >> 19 +100000000.001 >> 0 +100000000.001 >> 1 +100000000.001 >> 2 +100000000.001 >> 3 +100000000.001 >> 4 +100000000.001 >> 5 +100000000.001 >> 6 +100000000.001 >> 7 +100000000.001 >> 8 +100000000.001 >> 9 +100000000.001 >> 10 +100000000.001 >> 11 +100000000.001 >> 12 +100000000.001 >> 13 +100000000.001 >> 14 +100000000.001 >> 15 +100000000.001 >> 16 +100000000.001 >> 17 +100000000.001 >> 18 +100000000.001 >> 19 +100000000.0001 >> 0 +100000000.0001 >> 1 +100000000.0001 >> 2 +100000000.0001 >> 3 +100000000.0001 >> 4 +100000000.0001 >> 5 +100000000.0001 >> 6 +100000000.0001 >> 7 +100000000.0001 >> 8 +100000000.0001 >> 9 +100000000.0001 >> 10 +100000000.0001 >> 11 +100000000.0001 >> 12 +100000000.0001 >> 13 +100000000.0001 >> 14 +100000000.0001 >> 15 +100000000.0001 >> 16 +100000000.0001 >> 17 +100000000.0001 >> 18 +100000000.0001 >> 19 +100000000.00001 >> 0 +100000000.00001 >> 1 +100000000.00001 >> 2 +100000000.00001 >> 3 +100000000.00001 >> 4 +100000000.00001 >> 5 +100000000.00001 >> 6 +100000000.00001 >> 7 +100000000.00001 >> 8 +100000000.00001 >> 9 +100000000.00001 >> 10 +100000000.00001 >> 11 +100000000.00001 >> 12 +100000000.00001 >> 13 +100000000.00001 >> 14 +100000000.00001 >> 15 +100000000.00001 >> 16 +100000000.00001 >> 17 +100000000.00001 >> 18 +100000000.00001 >> 19 +100000000.000001 >> 0 +100000000.000001 >> 1 +100000000.000001 >> 2 +100000000.000001 >> 3 +100000000.000001 >> 4 +100000000.000001 >> 5 +100000000.000001 >> 6 +100000000.000001 >> 7 +100000000.000001 >> 8 +100000000.000001 >> 9 +100000000.000001 >> 10 +100000000.000001 >> 11 +100000000.000001 >> 12 +100000000.000001 >> 13 +100000000.000001 >> 14 +100000000.000001 >> 15 +100000000.000001 >> 16 +100000000.000001 >> 17 +100000000.000001 >> 18 +100000000.000001 >> 19 +100000000.0000001 >> 0 +100000000.0000001 >> 1 +100000000.0000001 >> 2 +100000000.0000001 >> 3 +100000000.0000001 >> 4 +100000000.0000001 >> 5 +100000000.0000001 >> 6 +100000000.0000001 >> 7 +100000000.0000001 >> 8 +100000000.0000001 >> 9 +100000000.0000001 >> 10 +100000000.0000001 >> 11 +100000000.0000001 >> 12 +100000000.0000001 >> 13 +100000000.0000001 >> 14 +100000000.0000001 >> 15 +100000000.0000001 >> 16 +100000000.0000001 >> 17 +100000000.0000001 >> 18 +100000000.0000001 >> 19 +100000000.00000001 >> 0 +100000000.00000001 >> 1 +100000000.00000001 >> 2 +100000000.00000001 >> 3 +100000000.00000001 >> 4 +100000000.00000001 >> 5 +100000000.00000001 >> 6 +100000000.00000001 >> 7 +100000000.00000001 >> 8 +100000000.00000001 >> 9 +100000000.00000001 >> 10 +100000000.00000001 >> 11 +100000000.00000001 >> 12 +100000000.00000001 >> 13 +100000000.00000001 >> 14 +100000000.00000001 >> 15 +100000000.00000001 >> 16 +100000000.00000001 >> 17 +100000000.00000001 >> 18 +100000000.00000001 >> 19 +100000000.000000001 >> 0 +100000000.000000001 >> 1 +100000000.000000001 >> 2 +100000000.000000001 >> 3 +100000000.000000001 >> 4 +100000000.000000001 >> 5 +100000000.000000001 >> 6 +100000000.000000001 >> 7 +100000000.000000001 >> 8 +100000000.000000001 >> 9 +100000000.000000001 >> 10 +100000000.000000001 >> 11 +100000000.000000001 >> 12 +100000000.000000001 >> 13 +100000000.000000001 >> 14 +100000000.000000001 >> 15 +100000000.000000001 >> 16 +100000000.000000001 >> 17 +100000000.000000001 >> 18 +100000000.000000001 >> 19 +100000000.0000000001 >> 0 +100000000.0000000001 >> 1 +100000000.0000000001 >> 2 +100000000.0000000001 >> 3 +100000000.0000000001 >> 4 +100000000.0000000001 >> 5 +100000000.0000000001 >> 6 +100000000.0000000001 >> 7 +100000000.0000000001 >> 8 +100000000.0000000001 >> 9 +100000000.0000000001 >> 10 +100000000.0000000001 >> 11 +100000000.0000000001 >> 12 +100000000.0000000001 >> 13 +100000000.0000000001 >> 14 +100000000.0000000001 >> 15 +100000000.0000000001 >> 16 +100000000.0000000001 >> 17 +100000000.0000000001 >> 18 +100000000.0000000001 >> 19 +1000000000 >> 0 +1000000000 >> 1 +1000000000 >> 2 +1000000000 >> 3 +1000000000 >> 4 +1000000000 >> 5 +1000000000 >> 6 +1000000000 >> 7 +1000000000 >> 8 +1000000000 >> 9 +1000000000 >> 10 +1000000000 >> 11 +1000000000 >> 12 +1000000000 >> 13 +1000000000 >> 14 +1000000000 >> 15 +1000000000 >> 16 +1000000000 >> 17 +1000000000 >> 18 +1000000000 >> 19 +1000000000.1 >> 0 +1000000000.1 >> 1 +1000000000.1 >> 2 +1000000000.1 >> 3 +1000000000.1 >> 4 +1000000000.1 >> 5 +1000000000.1 >> 6 +1000000000.1 >> 7 +1000000000.1 >> 8 +1000000000.1 >> 9 +1000000000.1 >> 10 +1000000000.1 >> 11 +1000000000.1 >> 12 +1000000000.1 >> 13 +1000000000.1 >> 14 +1000000000.1 >> 15 +1000000000.1 >> 16 +1000000000.1 >> 17 +1000000000.1 >> 18 +1000000000.1 >> 19 +1000000000.01 >> 0 +1000000000.01 >> 1 +1000000000.01 >> 2 +1000000000.01 >> 3 +1000000000.01 >> 4 +1000000000.01 >> 5 +1000000000.01 >> 6 +1000000000.01 >> 7 +1000000000.01 >> 8 +1000000000.01 >> 9 +1000000000.01 >> 10 +1000000000.01 >> 11 +1000000000.01 >> 12 +1000000000.01 >> 13 +1000000000.01 >> 14 +1000000000.01 >> 15 +1000000000.01 >> 16 +1000000000.01 >> 17 +1000000000.01 >> 18 +1000000000.01 >> 19 +1000000000.001 >> 0 +1000000000.001 >> 1 +1000000000.001 >> 2 +1000000000.001 >> 3 +1000000000.001 >> 4 +1000000000.001 >> 5 +1000000000.001 >> 6 +1000000000.001 >> 7 +1000000000.001 >> 8 +1000000000.001 >> 9 +1000000000.001 >> 10 +1000000000.001 >> 11 +1000000000.001 >> 12 +1000000000.001 >> 13 +1000000000.001 >> 14 +1000000000.001 >> 15 +1000000000.001 >> 16 +1000000000.001 >> 17 +1000000000.001 >> 18 +1000000000.001 >> 19 +1000000000.0001 >> 0 +1000000000.0001 >> 1 +1000000000.0001 >> 2 +1000000000.0001 >> 3 +1000000000.0001 >> 4 +1000000000.0001 >> 5 +1000000000.0001 >> 6 +1000000000.0001 >> 7 +1000000000.0001 >> 8 +1000000000.0001 >> 9 +1000000000.0001 >> 10 +1000000000.0001 >> 11 +1000000000.0001 >> 12 +1000000000.0001 >> 13 +1000000000.0001 >> 14 +1000000000.0001 >> 15 +1000000000.0001 >> 16 +1000000000.0001 >> 17 +1000000000.0001 >> 18 +1000000000.0001 >> 19 +1000000000.00001 >> 0 +1000000000.00001 >> 1 +1000000000.00001 >> 2 +1000000000.00001 >> 3 +1000000000.00001 >> 4 +1000000000.00001 >> 5 +1000000000.00001 >> 6 +1000000000.00001 >> 7 +1000000000.00001 >> 8 +1000000000.00001 >> 9 +1000000000.00001 >> 10 +1000000000.00001 >> 11 +1000000000.00001 >> 12 +1000000000.00001 >> 13 +1000000000.00001 >> 14 +1000000000.00001 >> 15 +1000000000.00001 >> 16 +1000000000.00001 >> 17 +1000000000.00001 >> 18 +1000000000.00001 >> 19 +1000000000.000001 >> 0 +1000000000.000001 >> 1 +1000000000.000001 >> 2 +1000000000.000001 >> 3 +1000000000.000001 >> 4 +1000000000.000001 >> 5 +1000000000.000001 >> 6 +1000000000.000001 >> 7 +1000000000.000001 >> 8 +1000000000.000001 >> 9 +1000000000.000001 >> 10 +1000000000.000001 >> 11 +1000000000.000001 >> 12 +1000000000.000001 >> 13 +1000000000.000001 >> 14 +1000000000.000001 >> 15 +1000000000.000001 >> 16 +1000000000.000001 >> 17 +1000000000.000001 >> 18 +1000000000.000001 >> 19 +1000000000.0000001 >> 0 +1000000000.0000001 >> 1 +1000000000.0000001 >> 2 +1000000000.0000001 >> 3 +1000000000.0000001 >> 4 +1000000000.0000001 >> 5 +1000000000.0000001 >> 6 +1000000000.0000001 >> 7 +1000000000.0000001 >> 8 +1000000000.0000001 >> 9 +1000000000.0000001 >> 10 +1000000000.0000001 >> 11 +1000000000.0000001 >> 12 +1000000000.0000001 >> 13 +1000000000.0000001 >> 14 +1000000000.0000001 >> 15 +1000000000.0000001 >> 16 +1000000000.0000001 >> 17 +1000000000.0000001 >> 18 +1000000000.0000001 >> 19 +1000000000.00000001 >> 0 +1000000000.00000001 >> 1 +1000000000.00000001 >> 2 +1000000000.00000001 >> 3 +1000000000.00000001 >> 4 +1000000000.00000001 >> 5 +1000000000.00000001 >> 6 +1000000000.00000001 >> 7 +1000000000.00000001 >> 8 +1000000000.00000001 >> 9 +1000000000.00000001 >> 10 +1000000000.00000001 >> 11 +1000000000.00000001 >> 12 +1000000000.00000001 >> 13 +1000000000.00000001 >> 14 +1000000000.00000001 >> 15 +1000000000.00000001 >> 16 +1000000000.00000001 >> 17 +1000000000.00000001 >> 18 +1000000000.00000001 >> 19 +1000000000.000000001 >> 0 +1000000000.000000001 >> 1 +1000000000.000000001 >> 2 +1000000000.000000001 >> 3 +1000000000.000000001 >> 4 +1000000000.000000001 >> 5 +1000000000.000000001 >> 6 +1000000000.000000001 >> 7 +1000000000.000000001 >> 8 +1000000000.000000001 >> 9 +1000000000.000000001 >> 10 +1000000000.000000001 >> 11 +1000000000.000000001 >> 12 +1000000000.000000001 >> 13 +1000000000.000000001 >> 14 +1000000000.000000001 >> 15 +1000000000.000000001 >> 16 +1000000000.000000001 >> 17 +1000000000.000000001 >> 18 +1000000000.000000001 >> 19 +1000000000.0000000001 >> 0 +1000000000.0000000001 >> 1 +1000000000.0000000001 >> 2 +1000000000.0000000001 >> 3 +1000000000.0000000001 >> 4 +1000000000.0000000001 >> 5 +1000000000.0000000001 >> 6 +1000000000.0000000001 >> 7 +1000000000.0000000001 >> 8 +1000000000.0000000001 >> 9 +1000000000.0000000001 >> 10 +1000000000.0000000001 >> 11 +1000000000.0000000001 >> 12 +1000000000.0000000001 >> 13 +1000000000.0000000001 >> 14 +1000000000.0000000001 >> 15 +1000000000.0000000001 >> 16 +1000000000.0000000001 >> 17 +1000000000.0000000001 >> 18 +1000000000.0000000001 >> 19 +10000000000 >> 0 +10000000000 >> 1 +10000000000 >> 2 +10000000000 >> 3 +10000000000 >> 4 +10000000000 >> 5 +10000000000 >> 6 +10000000000 >> 7 +10000000000 >> 8 +10000000000 >> 9 +10000000000 >> 10 +10000000000 >> 11 +10000000000 >> 12 +10000000000 >> 13 +10000000000 >> 14 +10000000000 >> 15 +10000000000 >> 16 +10000000000 >> 17 +10000000000 >> 18 +10000000000 >> 19 +10000000000.1 >> 0 +10000000000.1 >> 1 +10000000000.1 >> 2 +10000000000.1 >> 3 +10000000000.1 >> 4 +10000000000.1 >> 5 +10000000000.1 >> 6 +10000000000.1 >> 7 +10000000000.1 >> 8 +10000000000.1 >> 9 +10000000000.1 >> 10 +10000000000.1 >> 11 +10000000000.1 >> 12 +10000000000.1 >> 13 +10000000000.1 >> 14 +10000000000.1 >> 15 +10000000000.1 >> 16 +10000000000.1 >> 17 +10000000000.1 >> 18 +10000000000.1 >> 19 +10000000000.01 >> 0 +10000000000.01 >> 1 +10000000000.01 >> 2 +10000000000.01 >> 3 +10000000000.01 >> 4 +10000000000.01 >> 5 +10000000000.01 >> 6 +10000000000.01 >> 7 +10000000000.01 >> 8 +10000000000.01 >> 9 +10000000000.01 >> 10 +10000000000.01 >> 11 +10000000000.01 >> 12 +10000000000.01 >> 13 +10000000000.01 >> 14 +10000000000.01 >> 15 +10000000000.01 >> 16 +10000000000.01 >> 17 +10000000000.01 >> 18 +10000000000.01 >> 19 +10000000000.001 >> 0 +10000000000.001 >> 1 +10000000000.001 >> 2 +10000000000.001 >> 3 +10000000000.001 >> 4 +10000000000.001 >> 5 +10000000000.001 >> 6 +10000000000.001 >> 7 +10000000000.001 >> 8 +10000000000.001 >> 9 +10000000000.001 >> 10 +10000000000.001 >> 11 +10000000000.001 >> 12 +10000000000.001 >> 13 +10000000000.001 >> 14 +10000000000.001 >> 15 +10000000000.001 >> 16 +10000000000.001 >> 17 +10000000000.001 >> 18 +10000000000.001 >> 19 +10000000000.0001 >> 0 +10000000000.0001 >> 1 +10000000000.0001 >> 2 +10000000000.0001 >> 3 +10000000000.0001 >> 4 +10000000000.0001 >> 5 +10000000000.0001 >> 6 +10000000000.0001 >> 7 +10000000000.0001 >> 8 +10000000000.0001 >> 9 +10000000000.0001 >> 10 +10000000000.0001 >> 11 +10000000000.0001 >> 12 +10000000000.0001 >> 13 +10000000000.0001 >> 14 +10000000000.0001 >> 15 +10000000000.0001 >> 16 +10000000000.0001 >> 17 +10000000000.0001 >> 18 +10000000000.0001 >> 19 +10000000000.00001 >> 0 +10000000000.00001 >> 1 +10000000000.00001 >> 2 +10000000000.00001 >> 3 +10000000000.00001 >> 4 +10000000000.00001 >> 5 +10000000000.00001 >> 6 +10000000000.00001 >> 7 +10000000000.00001 >> 8 +10000000000.00001 >> 9 +10000000000.00001 >> 10 +10000000000.00001 >> 11 +10000000000.00001 >> 12 +10000000000.00001 >> 13 +10000000000.00001 >> 14 +10000000000.00001 >> 15 +10000000000.00001 >> 16 +10000000000.00001 >> 17 +10000000000.00001 >> 18 +10000000000.00001 >> 19 +10000000000.000001 >> 0 +10000000000.000001 >> 1 +10000000000.000001 >> 2 +10000000000.000001 >> 3 +10000000000.000001 >> 4 +10000000000.000001 >> 5 +10000000000.000001 >> 6 +10000000000.000001 >> 7 +10000000000.000001 >> 8 +10000000000.000001 >> 9 +10000000000.000001 >> 10 +10000000000.000001 >> 11 +10000000000.000001 >> 12 +10000000000.000001 >> 13 +10000000000.000001 >> 14 +10000000000.000001 >> 15 +10000000000.000001 >> 16 +10000000000.000001 >> 17 +10000000000.000001 >> 18 +10000000000.000001 >> 19 +10000000000.0000001 >> 0 +10000000000.0000001 >> 1 +10000000000.0000001 >> 2 +10000000000.0000001 >> 3 +10000000000.0000001 >> 4 +10000000000.0000001 >> 5 +10000000000.0000001 >> 6 +10000000000.0000001 >> 7 +10000000000.0000001 >> 8 +10000000000.0000001 >> 9 +10000000000.0000001 >> 10 +10000000000.0000001 >> 11 +10000000000.0000001 >> 12 +10000000000.0000001 >> 13 +10000000000.0000001 >> 14 +10000000000.0000001 >> 15 +10000000000.0000001 >> 16 +10000000000.0000001 >> 17 +10000000000.0000001 >> 18 +10000000000.0000001 >> 19 +10000000000.00000001 >> 0 +10000000000.00000001 >> 1 +10000000000.00000001 >> 2 +10000000000.00000001 >> 3 +10000000000.00000001 >> 4 +10000000000.00000001 >> 5 +10000000000.00000001 >> 6 +10000000000.00000001 >> 7 +10000000000.00000001 >> 8 +10000000000.00000001 >> 9 +10000000000.00000001 >> 10 +10000000000.00000001 >> 11 +10000000000.00000001 >> 12 +10000000000.00000001 >> 13 +10000000000.00000001 >> 14 +10000000000.00000001 >> 15 +10000000000.00000001 >> 16 +10000000000.00000001 >> 17 +10000000000.00000001 >> 18 +10000000000.00000001 >> 19 +10000000000.000000001 >> 0 +10000000000.000000001 >> 1 +10000000000.000000001 >> 2 +10000000000.000000001 >> 3 +10000000000.000000001 >> 4 +10000000000.000000001 >> 5 +10000000000.000000001 >> 6 +10000000000.000000001 >> 7 +10000000000.000000001 >> 8 +10000000000.000000001 >> 9 +10000000000.000000001 >> 10 +10000000000.000000001 >> 11 +10000000000.000000001 >> 12 +10000000000.000000001 >> 13 +10000000000.000000001 >> 14 +10000000000.000000001 >> 15 +10000000000.000000001 >> 16 +10000000000.000000001 >> 17 +10000000000.000000001 >> 18 +10000000000.000000001 >> 19 +10000000000.0000000001 >> 0 +10000000000.0000000001 >> 1 +10000000000.0000000001 >> 2 +10000000000.0000000001 >> 3 +10000000000.0000000001 >> 4 +10000000000.0000000001 >> 5 +10000000000.0000000001 >> 6 +10000000000.0000000001 >> 7 +10000000000.0000000001 >> 8 +10000000000.0000000001 >> 9 +10000000000.0000000001 >> 10 +10000000000.0000000001 >> 11 +10000000000.0000000001 >> 12 +10000000000.0000000001 >> 13 +10000000000.0000000001 >> 14 +10000000000.0000000001 >> 15 +10000000000.0000000001 >> 16 +10000000000.0000000001 >> 17 +10000000000.0000000001 >> 18 +10000000000.0000000001 >> 19 diff --git a/tests/bc/shift_results.txt b/tests/bc/shift_results.txt new file mode 100644 index 000000000000..a567e713c1aa --- /dev/null +++ b/tests/bc/shift_results.txt @@ -0,0 +1,5325 @@ +0 +1 +2 +.0023896 +1.298346 +2.00000000 +2.3896 +12983.46 +200000.000 +891368923489.76 +1892634051829351283289298000000000000000000000000 +0 +1 +2 +.0023896 +1.298346 +2.00000000 +.0000023896 +.0001298346 +.0000200000000 +.0089136892348976 +1.892634051829351283289298 +-1 +-2 +-.0023896 +-1.298346 +-2.00000000 +-2.3896 +-12983.46 +-200000.000 +-891368923489.76 +-1892634051829351283289298000000000000000000000000 +-1 +-2 +-.0023896 +-1.298346 +-2.00000000 +-.0000023896 +-.0001298346 +-.0000200000000 +-.0089136892348976 +.0089136892348976 +-1.892634051829351283289298 +1.892634051829351283289298 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +.0001 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +.00001 +.0001 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +.000001 +.00001 +.0001 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +.0000001 +.000001 +.00001 +.0001 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +.00000001 +.0000001 +.000001 +.00001 +.0001 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +.000000001 +.00000001 +.0000001 +.000001 +.00001 +.0001 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +.0000000001 +.000000001 +.00000001 +.0000001 +.000001 +.00001 +.0001 +.001 +.01 +.1 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +1 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +1.1 +11 +110 +1100 +11000 +110000 +1100000 +11000000 +110000000 +1100000000 +11000000000 +110000000000 +1100000000000 +11000000000000 +110000000000000 +1100000000000000 +11000000000000000 +110000000000000000 +1100000000000000000 +11000000000000000000 +1.01 +10.1 +101 +1010 +10100 +101000 +1010000 +10100000 +101000000 +1010000000 +10100000000 +101000000000 +1010000000000 +10100000000000 +101000000000000 +1010000000000000 +10100000000000000 +101000000000000000 +1010000000000000000 +10100000000000000000 +1.001 +10.01 +100.1 +1001 +10010 +100100 +1001000 +10010000 +100100000 +1001000000 +10010000000 +100100000000 +1001000000000 +10010000000000 +100100000000000 +1001000000000000 +10010000000000000 +100100000000000000 +1001000000000000000 +10010000000000000000 +1.0001 +10.001 +100.01 +1000.1 +10001 +100010 +1000100 +10001000 +100010000 +1000100000 +10001000000 +100010000000 +1000100000000 +10001000000000 +100010000000000 +1000100000000000 +10001000000000000 +100010000000000000 +1000100000000000000 +10001000000000000000 +1.00001 +10.0001 +100.001 +1000.01 +10000.1 +100001 +1000010 +10000100 +100001000 +1000010000 +10000100000 +100001000000 +1000010000000 +10000100000000 +100001000000000 +1000010000000000 +10000100000000000 +100001000000000000 +1000010000000000000 +10000100000000000000 +1.000001 +10.00001 +100.0001 +1000.001 +10000.01 +100000.1 +1000001 +10000010 +100000100 +1000001000 +10000010000 +100000100000 +1000001000000 +10000010000000 +100000100000000 +1000001000000000 +10000010000000000 +100000100000000000 +1000001000000000000 +10000010000000000000 +1.0000001 +10.000001 +100.00001 +1000.0001 +10000.001 +100000.01 +1000000.1 +10000001 +100000010 +1000000100 +10000001000 +100000010000 +1000000100000 +10000001000000 +100000010000000 +1000000100000000 +10000001000000000 +100000010000000000 +1000000100000000000 +10000001000000000000 +1.00000001 +10.0000001 +100.000001 +1000.00001 +10000.0001 +100000.001 +1000000.01 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +1.000000001 +10.00000001 +100.0000001 +1000.000001 +10000.00001 +100000.0001 +1000000.001 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +1.0000000001 +10.000000001 +100.00000001 +1000.0000001 +10000.000001 +100000.00001 +1000000.0001 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +10 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +10.1 +101 +1010 +10100 +101000 +1010000 +10100000 +101000000 +1010000000 +10100000000 +101000000000 +1010000000000 +10100000000000 +101000000000000 +1010000000000000 +10100000000000000 +101000000000000000 +1010000000000000000 +10100000000000000000 +101000000000000000000 +10.01 +100.1 +1001 +10010 +100100 +1001000 +10010000 +100100000 +1001000000 +10010000000 +100100000000 +1001000000000 +10010000000000 +100100000000000 +1001000000000000 +10010000000000000 +100100000000000000 +1001000000000000000 +10010000000000000000 +100100000000000000000 +10.001 +100.01 +1000.1 +10001 +100010 +1000100 +10001000 +100010000 +1000100000 +10001000000 +100010000000 +1000100000000 +10001000000000 +100010000000000 +1000100000000000 +10001000000000000 +100010000000000000 +1000100000000000000 +10001000000000000000 +100010000000000000000 +10.0001 +100.001 +1000.01 +10000.1 +100001 +1000010 +10000100 +100001000 +1000010000 +10000100000 +100001000000 +1000010000000 +10000100000000 +100001000000000 +1000010000000000 +10000100000000000 +100001000000000000 +1000010000000000000 +10000100000000000000 +100001000000000000000 +10.00001 +100.0001 +1000.001 +10000.01 +100000.1 +1000001 +10000010 +100000100 +1000001000 +10000010000 +100000100000 +1000001000000 +10000010000000 +100000100000000 +1000001000000000 +10000010000000000 +100000100000000000 +1000001000000000000 +10000010000000000000 +100000100000000000000 +10.000001 +100.00001 +1000.0001 +10000.001 +100000.01 +1000000.1 +10000001 +100000010 +1000000100 +10000001000 +100000010000 +1000000100000 +10000001000000 +100000010000000 +1000000100000000 +10000001000000000 +100000010000000000 +1000000100000000000 +10000001000000000000 +100000010000000000000 +10.0000001 +100.000001 +1000.00001 +10000.0001 +100000.001 +1000000.01 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +100000001000000000000 +10.00000001 +100.0000001 +1000.000001 +10000.00001 +100000.0001 +1000000.001 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +10.000000001 +100.00000001 +1000.0000001 +10000.000001 +100000.00001 +1000000.0001 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +10.0000000001 +100.000000001 +1000.00000001 +10000.0000001 +100000.000001 +1000000.00001 +10000000.0001 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +100 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +100.1 +1001 +10010 +100100 +1001000 +10010000 +100100000 +1001000000 +10010000000 +100100000000 +1001000000000 +10010000000000 +100100000000000 +1001000000000000 +10010000000000000 +100100000000000000 +1001000000000000000 +10010000000000000000 +100100000000000000000 +1001000000000000000000 +100.01 +1000.1 +10001 +100010 +1000100 +10001000 +100010000 +1000100000 +10001000000 +100010000000 +1000100000000 +10001000000000 +100010000000000 +1000100000000000 +10001000000000000 +100010000000000000 +1000100000000000000 +10001000000000000000 +100010000000000000000 +1000100000000000000000 +100.001 +1000.01 +10000.1 +100001 +1000010 +10000100 +100001000 +1000010000 +10000100000 +100001000000 +1000010000000 +10000100000000 +100001000000000 +1000010000000000 +10000100000000000 +100001000000000000 +1000010000000000000 +10000100000000000000 +100001000000000000000 +1000010000000000000000 +100.0001 +1000.001 +10000.01 +100000.1 +1000001 +10000010 +100000100 +1000001000 +10000010000 +100000100000 +1000001000000 +10000010000000 +100000100000000 +1000001000000000 +10000010000000000 +100000100000000000 +1000001000000000000 +10000010000000000000 +100000100000000000000 +1000001000000000000000 +100.00001 +1000.0001 +10000.001 +100000.01 +1000000.1 +10000001 +100000010 +1000000100 +10000001000 +100000010000 +1000000100000 +10000001000000 +100000010000000 +1000000100000000 +10000001000000000 +100000010000000000 +1000000100000000000 +10000001000000000000 +100000010000000000000 +1000000100000000000000 +100.000001 +1000.00001 +10000.0001 +100000.001 +1000000.01 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +100000001000000000000 +1000000010000000000000 +100.0000001 +1000.000001 +10000.00001 +100000.0001 +1000000.001 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +1000000001000000000000 +100.00000001 +1000.0000001 +10000.000001 +100000.00001 +1000000.0001 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +100.000000001 +1000.00000001 +10000.0000001 +100000.000001 +1000000.00001 +10000000.0001 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +100.0000000001 +1000.000000001 +10000.00000001 +100000.0000001 +1000000.000001 +10000000.00001 +100000000.0001 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +1000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +1000.1 +10001 +100010 +1000100 +10001000 +100010000 +1000100000 +10001000000 +100010000000 +1000100000000 +10001000000000 +100010000000000 +1000100000000000 +10001000000000000 +100010000000000000 +1000100000000000000 +10001000000000000000 +100010000000000000000 +1000100000000000000000 +10001000000000000000000 +1000.01 +10000.1 +100001 +1000010 +10000100 +100001000 +1000010000 +10000100000 +100001000000 +1000010000000 +10000100000000 +100001000000000 +1000010000000000 +10000100000000000 +100001000000000000 +1000010000000000000 +10000100000000000000 +100001000000000000000 +1000010000000000000000 +10000100000000000000000 +1000.001 +10000.01 +100000.1 +1000001 +10000010 +100000100 +1000001000 +10000010000 +100000100000 +1000001000000 +10000010000000 +100000100000000 +1000001000000000 +10000010000000000 +100000100000000000 +1000001000000000000 +10000010000000000000 +100000100000000000000 +1000001000000000000000 +10000010000000000000000 +1000.0001 +10000.001 +100000.01 +1000000.1 +10000001 +100000010 +1000000100 +10000001000 +100000010000 +1000000100000 +10000001000000 +100000010000000 +1000000100000000 +10000001000000000 +100000010000000000 +1000000100000000000 +10000001000000000000 +100000010000000000000 +1000000100000000000000 +10000001000000000000000 +1000.00001 +10000.0001 +100000.001 +1000000.01 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +100000001000000000000 +1000000010000000000000 +10000000100000000000000 +1000.000001 +10000.00001 +100000.0001 +1000000.001 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +1000000001000000000000 +10000000010000000000000 +1000.0000001 +10000.000001 +100000.00001 +1000000.0001 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +10000000001000000000000 +1000.00000001 +10000.0000001 +100000.000001 +1000000.00001 +10000000.0001 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +1000.000000001 +10000.00000001 +100000.0000001 +1000000.000001 +10000000.00001 +100000000.0001 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +1000.0000000001 +10000.000000001 +100000.00000001 +1000000.0000001 +10000000.000001 +100000000.00001 +1000000000.0001 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +10000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +100000000000000000000000 +10000.1 +100001 +1000010 +10000100 +100001000 +1000010000 +10000100000 +100001000000 +1000010000000 +10000100000000 +100001000000000 +1000010000000000 +10000100000000000 +100001000000000000 +1000010000000000000 +10000100000000000000 +100001000000000000000 +1000010000000000000000 +10000100000000000000000 +100001000000000000000000 +10000.01 +100000.1 +1000001 +10000010 +100000100 +1000001000 +10000010000 +100000100000 +1000001000000 +10000010000000 +100000100000000 +1000001000000000 +10000010000000000 +100000100000000000 +1000001000000000000 +10000010000000000000 +100000100000000000000 +1000001000000000000000 +10000010000000000000000 +100000100000000000000000 +10000.001 +100000.01 +1000000.1 +10000001 +100000010 +1000000100 +10000001000 +100000010000 +1000000100000 +10000001000000 +100000010000000 +1000000100000000 +10000001000000000 +100000010000000000 +1000000100000000000 +10000001000000000000 +100000010000000000000 +1000000100000000000000 +10000001000000000000000 +100000010000000000000000 +10000.0001 +100000.001 +1000000.01 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +100000001000000000000 +1000000010000000000000 +10000000100000000000000 +100000001000000000000000 +10000.00001 +100000.0001 +1000000.001 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +1000000001000000000000 +10000000010000000000000 +100000000100000000000000 +10000.000001 +100000.00001 +1000000.0001 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +10000000001000000000000 +100000000010000000000000 +10000.0000001 +100000.000001 +1000000.00001 +10000000.0001 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +100000000001000000000000 +10000.00000001 +100000.0000001 +1000000.000001 +10000000.00001 +100000000.0001 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +100000000000100000000000 +10000.000000001 +100000.00000001 +1000000.0000001 +10000000.000001 +100000000.00001 +1000000000.0001 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +100000000000010000000000 +10000.0000000001 +100000.000000001 +1000000.00000001 +10000000.0000001 +100000000.000001 +1000000000.00001 +10000000000.0001 +100000000000.001 +1000000000000.01 +10000000000000.1 +100000000000001 +1000000000000010 +10000000000000100 +100000000000001000 +1000000000000010000 +10000000000000100000 +100000000000001000000 +1000000000000010000000 +10000000000000100000000 +100000000000001000000000 +100000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +100000000000000000000000 +1000000000000000000000000 +100000.1 +1000001 +10000010 +100000100 +1000001000 +10000010000 +100000100000 +1000001000000 +10000010000000 +100000100000000 +1000001000000000 +10000010000000000 +100000100000000000 +1000001000000000000 +10000010000000000000 +100000100000000000000 +1000001000000000000000 +10000010000000000000000 +100000100000000000000000 +1000001000000000000000000 +100000.01 +1000000.1 +10000001 +100000010 +1000000100 +10000001000 +100000010000 +1000000100000 +10000001000000 +100000010000000 +1000000100000000 +10000001000000000 +100000010000000000 +1000000100000000000 +10000001000000000000 +100000010000000000000 +1000000100000000000000 +10000001000000000000000 +100000010000000000000000 +1000000100000000000000000 +100000.001 +1000000.01 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +100000001000000000000 +1000000010000000000000 +10000000100000000000000 +100000001000000000000000 +1000000010000000000000000 +100000.0001 +1000000.001 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +1000000001000000000000 +10000000010000000000000 +100000000100000000000000 +1000000001000000000000000 +100000.00001 +1000000.0001 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +10000000001000000000000 +100000000010000000000000 +1000000000100000000000000 +100000.000001 +1000000.00001 +10000000.0001 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +100000000001000000000000 +1000000000010000000000000 +100000.0000001 +1000000.000001 +10000000.00001 +100000000.0001 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +100000000000100000000000 +1000000000001000000000000 +100000.00000001 +1000000.0000001 +10000000.000001 +100000000.00001 +1000000000.0001 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +100000000000010000000000 +1000000000000100000000000 +100000.000000001 +1000000.00000001 +10000000.0000001 +100000000.000001 +1000000000.00001 +10000000000.0001 +100000000000.001 +1000000000000.01 +10000000000000.1 +100000000000001 +1000000000000010 +10000000000000100 +100000000000001000 +1000000000000010000 +10000000000000100000 +100000000000001000000 +1000000000000010000000 +10000000000000100000000 +100000000000001000000000 +1000000000000010000000000 +100000.0000000001 +1000000.000000001 +10000000.00000001 +100000000.0000001 +1000000000.000001 +10000000000.00001 +100000000000.0001 +1000000000000.001 +10000000000000.01 +100000000000000.1 +1000000000000001 +10000000000000010 +100000000000000100 +1000000000000001000 +10000000000000010000 +100000000000000100000 +1000000000000001000000 +10000000000000010000000 +100000000000000100000000 +1000000000000001000000000 +1000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +100000000000000000000000 +1000000000000000000000000 +10000000000000000000000000 +1000000.1 +10000001 +100000010 +1000000100 +10000001000 +100000010000 +1000000100000 +10000001000000 +100000010000000 +1000000100000000 +10000001000000000 +100000010000000000 +1000000100000000000 +10000001000000000000 +100000010000000000000 +1000000100000000000000 +10000001000000000000000 +100000010000000000000000 +1000000100000000000000000 +10000001000000000000000000 +1000000.01 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +100000001000000000000 +1000000010000000000000 +10000000100000000000000 +100000001000000000000000 +1000000010000000000000000 +10000000100000000000000000 +1000000.001 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +1000000001000000000000 +10000000010000000000000 +100000000100000000000000 +1000000001000000000000000 +10000000010000000000000000 +1000000.0001 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +10000000001000000000000 +100000000010000000000000 +1000000000100000000000000 +10000000001000000000000000 +1000000.00001 +10000000.0001 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +100000000001000000000000 +1000000000010000000000000 +10000000000100000000000000 +1000000.000001 +10000000.00001 +100000000.0001 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +100000000000100000000000 +1000000000001000000000000 +10000000000010000000000000 +1000000.0000001 +10000000.000001 +100000000.00001 +1000000000.0001 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +100000000000010000000000 +1000000000000100000000000 +10000000000001000000000000 +1000000.00000001 +10000000.0000001 +100000000.000001 +1000000000.00001 +10000000000.0001 +100000000000.001 +1000000000000.01 +10000000000000.1 +100000000000001 +1000000000000010 +10000000000000100 +100000000000001000 +1000000000000010000 +10000000000000100000 +100000000000001000000 +1000000000000010000000 +10000000000000100000000 +100000000000001000000000 +1000000000000010000000000 +10000000000000100000000000 +1000000.000000001 +10000000.00000001 +100000000.0000001 +1000000000.000001 +10000000000.00001 +100000000000.0001 +1000000000000.001 +10000000000000.01 +100000000000000.1 +1000000000000001 +10000000000000010 +100000000000000100 +1000000000000001000 +10000000000000010000 +100000000000000100000 +1000000000000001000000 +10000000000000010000000 +100000000000000100000000 +1000000000000001000000000 +10000000000000010000000000 +1000000.0000000001 +10000000.000000001 +100000000.00000001 +1000000000.0000001 +10000000000.000001 +100000000000.00001 +1000000000000.0001 +10000000000000.001 +100000000000000.01 +1000000000000000.1 +10000000000000001 +100000000000000010 +1000000000000000100 +10000000000000001000 +100000000000000010000 +1000000000000000100000 +10000000000000001000000 +100000000000000010000000 +1000000000000000100000000 +10000000000000001000000000 +10000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +100000000000000000000000 +1000000000000000000000000 +10000000000000000000000000 +100000000000000000000000000 +10000000.1 +100000001 +1000000010 +10000000100 +100000001000 +1000000010000 +10000000100000 +100000001000000 +1000000010000000 +10000000100000000 +100000001000000000 +1000000010000000000 +10000000100000000000 +100000001000000000000 +1000000010000000000000 +10000000100000000000000 +100000001000000000000000 +1000000010000000000000000 +10000000100000000000000000 +100000001000000000000000000 +10000000.01 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +1000000001000000000000 +10000000010000000000000 +100000000100000000000000 +1000000001000000000000000 +10000000010000000000000000 +100000000100000000000000000 +10000000.001 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +10000000001000000000000 +100000000010000000000000 +1000000000100000000000000 +10000000001000000000000000 +100000000010000000000000000 +10000000.0001 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +100000000001000000000000 +1000000000010000000000000 +10000000000100000000000000 +100000000001000000000000000 +10000000.00001 +100000000.0001 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +100000000000100000000000 +1000000000001000000000000 +10000000000010000000000000 +100000000000100000000000000 +10000000.000001 +100000000.00001 +1000000000.0001 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +100000000000010000000000 +1000000000000100000000000 +10000000000001000000000000 +100000000000010000000000000 +10000000.0000001 +100000000.000001 +1000000000.00001 +10000000000.0001 +100000000000.001 +1000000000000.01 +10000000000000.1 +100000000000001 +1000000000000010 +10000000000000100 +100000000000001000 +1000000000000010000 +10000000000000100000 +100000000000001000000 +1000000000000010000000 +10000000000000100000000 +100000000000001000000000 +1000000000000010000000000 +10000000000000100000000000 +100000000000001000000000000 +10000000.00000001 +100000000.0000001 +1000000000.000001 +10000000000.00001 +100000000000.0001 +1000000000000.001 +10000000000000.01 +100000000000000.1 +1000000000000001 +10000000000000010 +100000000000000100 +1000000000000001000 +10000000000000010000 +100000000000000100000 +1000000000000001000000 +10000000000000010000000 +100000000000000100000000 +1000000000000001000000000 +10000000000000010000000000 +100000000000000100000000000 +10000000.000000001 +100000000.00000001 +1000000000.0000001 +10000000000.000001 +100000000000.00001 +1000000000000.0001 +10000000000000.001 +100000000000000.01 +1000000000000000.1 +10000000000000001 +100000000000000010 +1000000000000000100 +10000000000000001000 +100000000000000010000 +1000000000000000100000 +10000000000000001000000 +100000000000000010000000 +1000000000000000100000000 +10000000000000001000000000 +100000000000000010000000000 +10000000.0000000001 +100000000.000000001 +1000000000.00000001 +10000000000.0000001 +100000000000.000001 +1000000000000.00001 +10000000000000.0001 +100000000000000.001 +1000000000000000.01 +10000000000000000.1 +100000000000000001 +1000000000000000010 +10000000000000000100 +100000000000000001000 +1000000000000000010000 +10000000000000000100000 +100000000000000001000000 +1000000000000000010000000 +10000000000000000100000000 +100000000000000001000000000 +100000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +100000000000000000000000 +1000000000000000000000000 +10000000000000000000000000 +100000000000000000000000000 +1000000000000000000000000000 +100000000.1 +1000000001 +10000000010 +100000000100 +1000000001000 +10000000010000 +100000000100000 +1000000001000000 +10000000010000000 +100000000100000000 +1000000001000000000 +10000000010000000000 +100000000100000000000 +1000000001000000000000 +10000000010000000000000 +100000000100000000000000 +1000000001000000000000000 +10000000010000000000000000 +100000000100000000000000000 +1000000001000000000000000000 +100000000.01 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +10000000001000000000000 +100000000010000000000000 +1000000000100000000000000 +10000000001000000000000000 +100000000010000000000000000 +1000000000100000000000000000 +100000000.001 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +100000000001000000000000 +1000000000010000000000000 +10000000000100000000000000 +100000000001000000000000000 +1000000000010000000000000000 +100000000.0001 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +100000000000100000000000 +1000000000001000000000000 +10000000000010000000000000 +100000000000100000000000000 +1000000000001000000000000000 +100000000.00001 +1000000000.0001 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +100000000000010000000000 +1000000000000100000000000 +10000000000001000000000000 +100000000000010000000000000 +1000000000000100000000000000 +100000000.000001 +1000000000.00001 +10000000000.0001 +100000000000.001 +1000000000000.01 +10000000000000.1 +100000000000001 +1000000000000010 +10000000000000100 +100000000000001000 +1000000000000010000 +10000000000000100000 +100000000000001000000 +1000000000000010000000 +10000000000000100000000 +100000000000001000000000 +1000000000000010000000000 +10000000000000100000000000 +100000000000001000000000000 +1000000000000010000000000000 +100000000.0000001 +1000000000.000001 +10000000000.00001 +100000000000.0001 +1000000000000.001 +10000000000000.01 +100000000000000.1 +1000000000000001 +10000000000000010 +100000000000000100 +1000000000000001000 +10000000000000010000 +100000000000000100000 +1000000000000001000000 +10000000000000010000000 +100000000000000100000000 +1000000000000001000000000 +10000000000000010000000000 +100000000000000100000000000 +1000000000000001000000000000 +100000000.00000001 +1000000000.0000001 +10000000000.000001 +100000000000.00001 +1000000000000.0001 +10000000000000.001 +100000000000000.01 +1000000000000000.1 +10000000000000001 +100000000000000010 +1000000000000000100 +10000000000000001000 +100000000000000010000 +1000000000000000100000 +10000000000000001000000 +100000000000000010000000 +1000000000000000100000000 +10000000000000001000000000 +100000000000000010000000000 +1000000000000000100000000000 +100000000.000000001 +1000000000.00000001 +10000000000.0000001 +100000000000.000001 +1000000000000.00001 +10000000000000.0001 +100000000000000.001 +1000000000000000.01 +10000000000000000.1 +100000000000000001 +1000000000000000010 +10000000000000000100 +100000000000000001000 +1000000000000000010000 +10000000000000000100000 +100000000000000001000000 +1000000000000000010000000 +10000000000000000100000000 +100000000000000001000000000 +1000000000000000010000000000 +100000000.0000000001 +1000000000.000000001 +10000000000.00000001 +100000000000.0000001 +1000000000000.000001 +10000000000000.00001 +100000000000000.0001 +1000000000000000.001 +10000000000000000.01 +100000000000000000.1 +1000000000000000001 +10000000000000000010 +100000000000000000100 +1000000000000000001000 +10000000000000000010000 +100000000000000000100000 +1000000000000000001000000 +10000000000000000010000000 +100000000000000000100000000 +1000000000000000001000000000 +1000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +100000000000000000000000 +1000000000000000000000000 +10000000000000000000000000 +100000000000000000000000000 +1000000000000000000000000000 +10000000000000000000000000000 +1000000000.1 +10000000001 +100000000010 +1000000000100 +10000000001000 +100000000010000 +1000000000100000 +10000000001000000 +100000000010000000 +1000000000100000000 +10000000001000000000 +100000000010000000000 +1000000000100000000000 +10000000001000000000000 +100000000010000000000000 +1000000000100000000000000 +10000000001000000000000000 +100000000010000000000000000 +1000000000100000000000000000 +10000000001000000000000000000 +1000000000.01 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +100000000001000000000000 +1000000000010000000000000 +10000000000100000000000000 +100000000001000000000000000 +1000000000010000000000000000 +10000000000100000000000000000 +1000000000.001 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +100000000000100000000000 +1000000000001000000000000 +10000000000010000000000000 +100000000000100000000000000 +1000000000001000000000000000 +10000000000010000000000000000 +1000000000.0001 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +100000000000010000000000 +1000000000000100000000000 +10000000000001000000000000 +100000000000010000000000000 +1000000000000100000000000000 +10000000000001000000000000000 +1000000000.00001 +10000000000.0001 +100000000000.001 +1000000000000.01 +10000000000000.1 +100000000000001 +1000000000000010 +10000000000000100 +100000000000001000 +1000000000000010000 +10000000000000100000 +100000000000001000000 +1000000000000010000000 +10000000000000100000000 +100000000000001000000000 +1000000000000010000000000 +10000000000000100000000000 +100000000000001000000000000 +1000000000000010000000000000 +10000000000000100000000000000 +1000000000.000001 +10000000000.00001 +100000000000.0001 +1000000000000.001 +10000000000000.01 +100000000000000.1 +1000000000000001 +10000000000000010 +100000000000000100 +1000000000000001000 +10000000000000010000 +100000000000000100000 +1000000000000001000000 +10000000000000010000000 +100000000000000100000000 +1000000000000001000000000 +10000000000000010000000000 +100000000000000100000000000 +1000000000000001000000000000 +10000000000000010000000000000 +1000000000.0000001 +10000000000.000001 +100000000000.00001 +1000000000000.0001 +10000000000000.001 +100000000000000.01 +1000000000000000.1 +10000000000000001 +100000000000000010 +1000000000000000100 +10000000000000001000 +100000000000000010000 +1000000000000000100000 +10000000000000001000000 +100000000000000010000000 +1000000000000000100000000 +10000000000000001000000000 +100000000000000010000000000 +1000000000000000100000000000 +10000000000000001000000000000 +1000000000.00000001 +10000000000.0000001 +100000000000.000001 +1000000000000.00001 +10000000000000.0001 +100000000000000.001 +1000000000000000.01 +10000000000000000.1 +100000000000000001 +1000000000000000010 +10000000000000000100 +100000000000000001000 +1000000000000000010000 +10000000000000000100000 +100000000000000001000000 +1000000000000000010000000 +10000000000000000100000000 +100000000000000001000000000 +1000000000000000010000000000 +10000000000000000100000000000 +1000000000.000000001 +10000000000.00000001 +100000000000.0000001 +1000000000000.000001 +10000000000000.00001 +100000000000000.0001 +1000000000000000.001 +10000000000000000.01 +100000000000000000.1 +1000000000000000001 +10000000000000000010 +100000000000000000100 +1000000000000000001000 +10000000000000000010000 +100000000000000000100000 +1000000000000000001000000 +10000000000000000010000000 +100000000000000000100000000 +1000000000000000001000000000 +10000000000000000010000000000 +1000000000.0000000001 +10000000000.000000001 +100000000000.00000001 +1000000000000.0000001 +10000000000000.000001 +100000000000000.00001 +1000000000000000.0001 +10000000000000000.001 +100000000000000000.01 +1000000000000000000.1 +10000000000000000001 +100000000000000000010 +1000000000000000000100 +10000000000000000001000 +100000000000000000010000 +1000000000000000000100000 +10000000000000000001000000 +100000000000000000010000000 +1000000000000000000100000000 +10000000000000000001000000000 +10000000000 +100000000000 +1000000000000 +10000000000000 +100000000000000 +1000000000000000 +10000000000000000 +100000000000000000 +1000000000000000000 +10000000000000000000 +100000000000000000000 +1000000000000000000000 +10000000000000000000000 +100000000000000000000000 +1000000000000000000000000 +10000000000000000000000000 +100000000000000000000000000 +1000000000000000000000000000 +10000000000000000000000000000 +100000000000000000000000000000 +10000000000.1 +100000000001 +1000000000010 +10000000000100 +100000000001000 +1000000000010000 +10000000000100000 +100000000001000000 +1000000000010000000 +10000000000100000000 +100000000001000000000 +1000000000010000000000 +10000000000100000000000 +100000000001000000000000 +1000000000010000000000000 +10000000000100000000000000 +100000000001000000000000000 +1000000000010000000000000000 +10000000000100000000000000000 +100000000001000000000000000000 +10000000000.01 +100000000000.1 +1000000000001 +10000000000010 +100000000000100 +1000000000001000 +10000000000010000 +100000000000100000 +1000000000001000000 +10000000000010000000 +100000000000100000000 +1000000000001000000000 +10000000000010000000000 +100000000000100000000000 +1000000000001000000000000 +10000000000010000000000000 +100000000000100000000000000 +1000000000001000000000000000 +10000000000010000000000000000 +100000000000100000000000000000 +10000000000.001 +100000000000.01 +1000000000000.1 +10000000000001 +100000000000010 +1000000000000100 +10000000000001000 +100000000000010000 +1000000000000100000 +10000000000001000000 +100000000000010000000 +1000000000000100000000 +10000000000001000000000 +100000000000010000000000 +1000000000000100000000000 +10000000000001000000000000 +100000000000010000000000000 +1000000000000100000000000000 +10000000000001000000000000000 +100000000000010000000000000000 +10000000000.0001 +100000000000.001 +1000000000000.01 +10000000000000.1 +100000000000001 +1000000000000010 +10000000000000100 +100000000000001000 +1000000000000010000 +10000000000000100000 +100000000000001000000 +1000000000000010000000 +10000000000000100000000 +100000000000001000000000 +1000000000000010000000000 +10000000000000100000000000 +100000000000001000000000000 +1000000000000010000000000000 +10000000000000100000000000000 +100000000000001000000000000000 +10000000000.00001 +100000000000.0001 +1000000000000.001 +10000000000000.01 +100000000000000.1 +1000000000000001 +10000000000000010 +100000000000000100 +1000000000000001000 +10000000000000010000 +100000000000000100000 +1000000000000001000000 +10000000000000010000000 +100000000000000100000000 +1000000000000001000000000 +10000000000000010000000000 +100000000000000100000000000 +1000000000000001000000000000 +10000000000000010000000000000 +100000000000000100000000000000 +10000000000.000001 +100000000000.00001 +1000000000000.0001 +10000000000000.001 +100000000000000.01 +1000000000000000.1 +10000000000000001 +100000000000000010 +1000000000000000100 +10000000000000001000 +100000000000000010000 +1000000000000000100000 +10000000000000001000000 +100000000000000010000000 +1000000000000000100000000 +10000000000000001000000000 +100000000000000010000000000 +1000000000000000100000000000 +10000000000000001000000000000 +100000000000000010000000000000 +10000000000.0000001 +100000000000.000001 +1000000000000.00001 +10000000000000.0001 +100000000000000.001 +1000000000000000.01 +10000000000000000.1 +100000000000000001 +1000000000000000010 +10000000000000000100 +100000000000000001000 +1000000000000000010000 +10000000000000000100000 +100000000000000001000000 +1000000000000000010000000 +10000000000000000100000000 +100000000000000001000000000 +1000000000000000010000000000 +10000000000000000100000000000 +100000000000000001000000000000 +10000000000.00000001 +100000000000.0000001 +1000000000000.000001 +10000000000000.00001 +100000000000000.0001 +1000000000000000.001 +10000000000000000.01 +100000000000000000.1 +1000000000000000001 +10000000000000000010 +100000000000000000100 +1000000000000000001000 +10000000000000000010000 +100000000000000000100000 +1000000000000000001000000 +10000000000000000010000000 +100000000000000000100000000 +1000000000000000001000000000 +10000000000000000010000000000 +100000000000000000100000000000 +10000000000.000000001 +100000000000.00000001 +1000000000000.0000001 +10000000000000.000001 +100000000000000.00001 +1000000000000000.0001 +10000000000000000.001 +100000000000000000.01 +1000000000000000000.1 +10000000000000000001 +100000000000000000010 +1000000000000000000100 +10000000000000000001000 +100000000000000000010000 +1000000000000000000100000 +10000000000000000001000000 +100000000000000000010000000 +1000000000000000000100000000 +10000000000000000001000000000 +100000000000000000010000000000 +10000000000.0000000001 +100000000000.000000001 +1000000000000.00000001 +10000000000000.0000001 +100000000000000.000001 +1000000000000000.00001 +10000000000000000.0001 +100000000000000000.001 +1000000000000000000.01 +10000000000000000000.1 +100000000000000000001 +1000000000000000000010 +10000000000000000000100 +100000000000000000001000 +1000000000000000000010000 +10000000000000000000100000 +100000000000000000001000000 +1000000000000000000010000000 +10000000000000000000100000000 +100000000000000000001000000000 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +.1 +.01 +.001 +.0001 +.00001 +.000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.01 +.001 +.0001 +.00001 +.000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.001 +.0001 +.00001 +.000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.0001 +.00001 +.000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.00000000000000000000001 +.00001 +.000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.00000000000000000000001 +.000000000000000000000001 +.000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.00000000000000000000001 +.000000000000000000000001 +.0000000000000000000000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.00000000000000000000001 +.000000000000000000000001 +.0000000000000000000000001 +.00000000000000000000000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.00000000000000000000001 +.000000000000000000000001 +.0000000000000000000000001 +.00000000000000000000000001 +.000000000000000000000000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.00000000000000000000001 +.000000000000000000000001 +.0000000000000000000000001 +.00000000000000000000000001 +.000000000000000000000000001 +.0000000000000000000000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +.00000000000000000001 +.000000000000000000001 +.0000000000000000000001 +.00000000000000000000001 +.000000000000000000000001 +.0000000000000000000000001 +.00000000000000000000000001 +.000000000000000000000000001 +.0000000000000000000000000001 +.00000000000000000000000000001 +1 +.1 +.01 +.001 +.0001 +.00001 +.000001 +.0000001 +.00000001 +.000000001 +.0000000001 +.00000000001 +.000000000001 +.0000000000001 +.00000000000001 +.000000000000001 +.0000000000000001 +.00000000000000001 +.000000000000000001 +.0000000000000000001 +1.1 +.11 +.011 +.0011 +.00011 +.000011 +.0000011 +.00000011 +.000000011 +.0000000011 +.00000000011 +.000000000011 +.0000000000011 +.00000000000011 +.000000000000011 +.0000000000000011 +.00000000000000011 +.000000000000000011 +.0000000000000000011 +.00000000000000000011 +1.01 +.101 +.0101 +.00101 +.000101 +.0000101 +.00000101 +.000000101 +.0000000101 +.00000000101 +.000000000101 +.0000000000101 +.00000000000101 +.000000000000101 +.0000000000000101 +.00000000000000101 +.000000000000000101 +.0000000000000000101 +.00000000000000000101 +.000000000000000000101 +1.001 +.1001 +.01001 +.001001 +.0001001 +.00001001 +.000001001 +.0000001001 +.00000001001 +.000000001001 +.0000000001001 +.00000000001001 +.000000000001001 +.0000000000001001 +.00000000000001001 +.000000000000001001 +.0000000000000001001 +.00000000000000001001 +.000000000000000001001 +.0000000000000000001001 +1.0001 +.10001 +.010001 +.0010001 +.00010001 +.000010001 +.0000010001 +.00000010001 +.000000010001 +.0000000010001 +.00000000010001 +.000000000010001 +.0000000000010001 +.00000000000010001 +.000000000000010001 +.0000000000000010001 +.00000000000000010001 +.000000000000000010001 +.0000000000000000010001 +.00000000000000000010001 +1.00001 +.100001 +.0100001 +.00100001 +.000100001 +.0000100001 +.00000100001 +.000000100001 +.0000000100001 +.00000000100001 +.000000000100001 +.0000000000100001 +.00000000000100001 +.000000000000100001 +.0000000000000100001 +.00000000000000100001 +.000000000000000100001 +.0000000000000000100001 +.00000000000000000100001 +.000000000000000000100001 +1.000001 +.1000001 +.01000001 +.001000001 +.0001000001 +.00001000001 +.000001000001 +.0000001000001 +.00000001000001 +.000000001000001 +.0000000001000001 +.00000000001000001 +.000000000001000001 +.0000000000001000001 +.00000000000001000001 +.000000000000001000001 +.0000000000000001000001 +.00000000000000001000001 +.000000000000000001000001 +.0000000000000000001000001 +1.0000001 +.10000001 +.010000001 +.0010000001 +.00010000001 +.000010000001 +.0000010000001 +.00000010000001 +.000000010000001 +.0000000010000001 +.00000000010000001 +.000000000010000001 +.0000000000010000001 +.00000000000010000001 +.000000000000010000001 +.0000000000000010000001 +.00000000000000010000001 +.000000000000000010000001 +.0000000000000000010000001 +.00000000000000000010000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +.000000000000100000001 +.0000000000000100000001 +.00000000000000100000001 +.000000000000000100000001 +.0000000000000000100000001 +.00000000000000000100000001 +.000000000000000000100000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +.0000000000001000000001 +.00000000000001000000001 +.000000000000001000000001 +.0000000000000001000000001 +.00000000000000001000000001 +.000000000000000001000000001 +.0000000000000000001000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +.00000000000010000000001 +.000000000000010000000001 +.0000000000000010000000001 +.00000000000000010000000001 +.000000000000000010000000001 +.0000000000000000010000000001 +.00000000000000000010000000001 +10 +1.0 +.10 +.010 +.0010 +.00010 +.000010 +.0000010 +.00000010 +.000000010 +.0000000010 +.00000000010 +.000000000010 +.0000000000010 +.00000000000010 +.000000000000010 +.0000000000000010 +.00000000000000010 +.000000000000000010 +.0000000000000000010 +10.1 +1.01 +.101 +.0101 +.00101 +.000101 +.0000101 +.00000101 +.000000101 +.0000000101 +.00000000101 +.000000000101 +.0000000000101 +.00000000000101 +.000000000000101 +.0000000000000101 +.00000000000000101 +.000000000000000101 +.0000000000000000101 +.00000000000000000101 +10.01 +1.001 +.1001 +.01001 +.001001 +.0001001 +.00001001 +.000001001 +.0000001001 +.00000001001 +.000000001001 +.0000000001001 +.00000000001001 +.000000000001001 +.0000000000001001 +.00000000000001001 +.000000000000001001 +.0000000000000001001 +.00000000000000001001 +.000000000000000001001 +10.001 +1.0001 +.10001 +.010001 +.0010001 +.00010001 +.000010001 +.0000010001 +.00000010001 +.000000010001 +.0000000010001 +.00000000010001 +.000000000010001 +.0000000000010001 +.00000000000010001 +.000000000000010001 +.0000000000000010001 +.00000000000000010001 +.000000000000000010001 +.0000000000000000010001 +10.0001 +1.00001 +.100001 +.0100001 +.00100001 +.000100001 +.0000100001 +.00000100001 +.000000100001 +.0000000100001 +.00000000100001 +.000000000100001 +.0000000000100001 +.00000000000100001 +.000000000000100001 +.0000000000000100001 +.00000000000000100001 +.000000000000000100001 +.0000000000000000100001 +.00000000000000000100001 +10.00001 +1.000001 +.1000001 +.01000001 +.001000001 +.0001000001 +.00001000001 +.000001000001 +.0000001000001 +.00000001000001 +.000000001000001 +.0000000001000001 +.00000000001000001 +.000000000001000001 +.0000000000001000001 +.00000000000001000001 +.000000000000001000001 +.0000000000000001000001 +.00000000000000001000001 +.000000000000000001000001 +10.000001 +1.0000001 +.10000001 +.010000001 +.0010000001 +.00010000001 +.000010000001 +.0000010000001 +.00000010000001 +.000000010000001 +.0000000010000001 +.00000000010000001 +.000000000010000001 +.0000000000010000001 +.00000000000010000001 +.000000000000010000001 +.0000000000000010000001 +.00000000000000010000001 +.000000000000000010000001 +.0000000000000000010000001 +10.0000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +.000000000000100000001 +.0000000000000100000001 +.00000000000000100000001 +.000000000000000100000001 +.0000000000000000100000001 +.00000000000000000100000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +.0000000000001000000001 +.00000000000001000000001 +.000000000000001000000001 +.0000000000000001000000001 +.00000000000000001000000001 +.000000000000000001000000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +.00000000000010000000001 +.000000000000010000000001 +.0000000000000010000000001 +.00000000000000010000000001 +.000000000000000010000000001 +.0000000000000000010000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +.00000000000100000000001 +.000000000000100000000001 +.0000000000000100000000001 +.00000000000000100000000001 +.000000000000000100000000001 +.0000000000000000100000000001 +.00000000000000000100000000001 +100 +10.0 +1.00 +.100 +.0100 +.00100 +.000100 +.0000100 +.00000100 +.000000100 +.0000000100 +.00000000100 +.000000000100 +.0000000000100 +.00000000000100 +.000000000000100 +.0000000000000100 +.00000000000000100 +.000000000000000100 +.0000000000000000100 +100.1 +10.01 +1.001 +.1001 +.01001 +.001001 +.0001001 +.00001001 +.000001001 +.0000001001 +.00000001001 +.000000001001 +.0000000001001 +.00000000001001 +.000000000001001 +.0000000000001001 +.00000000000001001 +.000000000000001001 +.0000000000000001001 +.00000000000000001001 +100.01 +10.001 +1.0001 +.10001 +.010001 +.0010001 +.00010001 +.000010001 +.0000010001 +.00000010001 +.000000010001 +.0000000010001 +.00000000010001 +.000000000010001 +.0000000000010001 +.00000000000010001 +.000000000000010001 +.0000000000000010001 +.00000000000000010001 +.000000000000000010001 +100.001 +10.0001 +1.00001 +.100001 +.0100001 +.00100001 +.000100001 +.0000100001 +.00000100001 +.000000100001 +.0000000100001 +.00000000100001 +.000000000100001 +.0000000000100001 +.00000000000100001 +.000000000000100001 +.0000000000000100001 +.00000000000000100001 +.000000000000000100001 +.0000000000000000100001 +100.0001 +10.00001 +1.000001 +.1000001 +.01000001 +.001000001 +.0001000001 +.00001000001 +.000001000001 +.0000001000001 +.00000001000001 +.000000001000001 +.0000000001000001 +.00000000001000001 +.000000000001000001 +.0000000000001000001 +.00000000000001000001 +.000000000000001000001 +.0000000000000001000001 +.00000000000000001000001 +100.00001 +10.000001 +1.0000001 +.10000001 +.010000001 +.0010000001 +.00010000001 +.000010000001 +.0000010000001 +.00000010000001 +.000000010000001 +.0000000010000001 +.00000000010000001 +.000000000010000001 +.0000000000010000001 +.00000000000010000001 +.000000000000010000001 +.0000000000000010000001 +.00000000000000010000001 +.000000000000000010000001 +100.000001 +10.0000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +.000000000000100000001 +.0000000000000100000001 +.00000000000000100000001 +.000000000000000100000001 +.0000000000000000100000001 +100.0000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +.0000000000001000000001 +.00000000000001000000001 +.000000000000001000000001 +.0000000000000001000000001 +.00000000000000001000000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +.00000000000010000000001 +.000000000000010000000001 +.0000000000000010000000001 +.00000000000000010000000001 +.000000000000000010000000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +.00000000000100000000001 +.000000000000100000000001 +.0000000000000100000000001 +.00000000000000100000000001 +.000000000000000100000000001 +.0000000000000000100000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +.00000000001000000000001 +.000000000001000000000001 +.0000000000001000000000001 +.00000000000001000000000001 +.000000000000001000000000001 +.0000000000000001000000000001 +.00000000000000001000000000001 +1000 +100.0 +10.00 +1.000 +.1000 +.01000 +.001000 +.0001000 +.00001000 +.000001000 +.0000001000 +.00000001000 +.000000001000 +.0000000001000 +.00000000001000 +.000000000001000 +.0000000000001000 +.00000000000001000 +.000000000000001000 +.0000000000000001000 +1000.1 +100.01 +10.001 +1.0001 +.10001 +.010001 +.0010001 +.00010001 +.000010001 +.0000010001 +.00000010001 +.000000010001 +.0000000010001 +.00000000010001 +.000000000010001 +.0000000000010001 +.00000000000010001 +.000000000000010001 +.0000000000000010001 +.00000000000000010001 +1000.01 +100.001 +10.0001 +1.00001 +.100001 +.0100001 +.00100001 +.000100001 +.0000100001 +.00000100001 +.000000100001 +.0000000100001 +.00000000100001 +.000000000100001 +.0000000000100001 +.00000000000100001 +.000000000000100001 +.0000000000000100001 +.00000000000000100001 +.000000000000000100001 +1000.001 +100.0001 +10.00001 +1.000001 +.1000001 +.01000001 +.001000001 +.0001000001 +.00001000001 +.000001000001 +.0000001000001 +.00000001000001 +.000000001000001 +.0000000001000001 +.00000000001000001 +.000000000001000001 +.0000000000001000001 +.00000000000001000001 +.000000000000001000001 +.0000000000000001000001 +1000.0001 +100.00001 +10.000001 +1.0000001 +.10000001 +.010000001 +.0010000001 +.00010000001 +.000010000001 +.0000010000001 +.00000010000001 +.000000010000001 +.0000000010000001 +.00000000010000001 +.000000000010000001 +.0000000000010000001 +.00000000000010000001 +.000000000000010000001 +.0000000000000010000001 +.00000000000000010000001 +1000.00001 +100.000001 +10.0000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +.000000000000100000001 +.0000000000000100000001 +.00000000000000100000001 +.000000000000000100000001 +1000.000001 +100.0000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +.0000000000001000000001 +.00000000000001000000001 +.000000000000001000000001 +.0000000000000001000000001 +1000.0000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +.00000000000010000000001 +.000000000000010000000001 +.0000000000000010000000001 +.00000000000000010000000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +.00000000000100000000001 +.000000000000100000000001 +.0000000000000100000000001 +.00000000000000100000000001 +.000000000000000100000000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +.00000000001000000000001 +.000000000001000000000001 +.0000000000001000000000001 +.00000000000001000000000001 +.000000000000001000000000001 +.0000000000000001000000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +.00000000010000000000001 +.000000000010000000000001 +.0000000000010000000000001 +.00000000000010000000000001 +.000000000000010000000000001 +.0000000000000010000000000001 +.00000000000000010000000000001 +10000 +1000.0 +100.00 +10.000 +1.0000 +.10000 +.010000 +.0010000 +.00010000 +.000010000 +.0000010000 +.00000010000 +.000000010000 +.0000000010000 +.00000000010000 +.000000000010000 +.0000000000010000 +.00000000000010000 +.000000000000010000 +.0000000000000010000 +10000.1 +1000.01 +100.001 +10.0001 +1.00001 +.100001 +.0100001 +.00100001 +.000100001 +.0000100001 +.00000100001 +.000000100001 +.0000000100001 +.00000000100001 +.000000000100001 +.0000000000100001 +.00000000000100001 +.000000000000100001 +.0000000000000100001 +.00000000000000100001 +10000.01 +1000.001 +100.0001 +10.00001 +1.000001 +.1000001 +.01000001 +.001000001 +.0001000001 +.00001000001 +.000001000001 +.0000001000001 +.00000001000001 +.000000001000001 +.0000000001000001 +.00000000001000001 +.000000000001000001 +.0000000000001000001 +.00000000000001000001 +.000000000000001000001 +10000.001 +1000.0001 +100.00001 +10.000001 +1.0000001 +.10000001 +.010000001 +.0010000001 +.00010000001 +.000010000001 +.0000010000001 +.00000010000001 +.000000010000001 +.0000000010000001 +.00000000010000001 +.000000000010000001 +.0000000000010000001 +.00000000000010000001 +.000000000000010000001 +.0000000000000010000001 +10000.0001 +1000.00001 +100.000001 +10.0000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +.000000000000100000001 +.0000000000000100000001 +.00000000000000100000001 +10000.00001 +1000.000001 +100.0000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +.0000000000001000000001 +.00000000000001000000001 +.000000000000001000000001 +10000.000001 +1000.0000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +.00000000000010000000001 +.000000000000010000000001 +.0000000000000010000000001 +10000.0000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +.00000000000100000000001 +.000000000000100000000001 +.0000000000000100000000001 +.00000000000000100000000001 +10000.00000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +.00000000001000000000001 +.000000000001000000000001 +.0000000000001000000000001 +.00000000000001000000000001 +.000000000000001000000000001 +10000.000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +.00000000010000000000001 +.000000000010000000000001 +.0000000000010000000000001 +.00000000000010000000000001 +.000000000000010000000000001 +.0000000000000010000000000001 +10000.0000000001 +1000.00000000001 +100.000000000001 +10.0000000000001 +1.00000000000001 +.100000000000001 +.0100000000000001 +.00100000000000001 +.000100000000000001 +.0000100000000000001 +.00000100000000000001 +.000000100000000000001 +.0000000100000000000001 +.00000000100000000000001 +.000000000100000000000001 +.0000000000100000000000001 +.00000000000100000000000001 +.000000000000100000000000001 +.0000000000000100000000000001 +.00000000000000100000000000001 +100000 +10000.0 +1000.00 +100.000 +10.0000 +1.00000 +.100000 +.0100000 +.00100000 +.000100000 +.0000100000 +.00000100000 +.000000100000 +.0000000100000 +.00000000100000 +.000000000100000 +.0000000000100000 +.00000000000100000 +.000000000000100000 +.0000000000000100000 +100000.1 +10000.01 +1000.001 +100.0001 +10.00001 +1.000001 +.1000001 +.01000001 +.001000001 +.0001000001 +.00001000001 +.000001000001 +.0000001000001 +.00000001000001 +.000000001000001 +.0000000001000001 +.00000000001000001 +.000000000001000001 +.0000000000001000001 +.00000000000001000001 +100000.01 +10000.001 +1000.0001 +100.00001 +10.000001 +1.0000001 +.10000001 +.010000001 +.0010000001 +.00010000001 +.000010000001 +.0000010000001 +.00000010000001 +.000000010000001 +.0000000010000001 +.00000000010000001 +.000000000010000001 +.0000000000010000001 +.00000000000010000001 +.000000000000010000001 +100000.001 +10000.0001 +1000.00001 +100.000001 +10.0000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +.000000000000100000001 +.0000000000000100000001 +100000.0001 +10000.00001 +1000.000001 +100.0000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +.0000000000001000000001 +.00000000000001000000001 +100000.00001 +10000.000001 +1000.0000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +.00000000000010000000001 +.000000000000010000000001 +100000.000001 +10000.0000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +.00000000000100000000001 +.000000000000100000000001 +.0000000000000100000000001 +100000.0000001 +10000.00000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +.00000000001000000000001 +.000000000001000000000001 +.0000000000001000000000001 +.00000000000001000000000001 +100000.00000001 +10000.000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +.00000000010000000000001 +.000000000010000000000001 +.0000000000010000000000001 +.00000000000010000000000001 +.000000000000010000000000001 +100000.000000001 +10000.0000000001 +1000.00000000001 +100.000000000001 +10.0000000000001 +1.00000000000001 +.100000000000001 +.0100000000000001 +.00100000000000001 +.000100000000000001 +.0000100000000000001 +.00000100000000000001 +.000000100000000000001 +.0000000100000000000001 +.00000000100000000000001 +.000000000100000000000001 +.0000000000100000000000001 +.00000000000100000000000001 +.000000000000100000000000001 +.0000000000000100000000000001 +100000.0000000001 +10000.00000000001 +1000.000000000001 +100.0000000000001 +10.00000000000001 +1.000000000000001 +.1000000000000001 +.01000000000000001 +.001000000000000001 +.0001000000000000001 +.00001000000000000001 +.000001000000000000001 +.0000001000000000000001 +.00000001000000000000001 +.000000001000000000000001 +.0000000001000000000000001 +.00000000001000000000000001 +.000000000001000000000000001 +.0000000000001000000000000001 +.00000000000001000000000000001 +1000000 +100000.0 +10000.00 +1000.000 +100.0000 +10.00000 +1.000000 +.1000000 +.01000000 +.001000000 +.0001000000 +.00001000000 +.000001000000 +.0000001000000 +.00000001000000 +.000000001000000 +.0000000001000000 +.00000000001000000 +.000000000001000000 +.0000000000001000000 +1000000.1 +100000.01 +10000.001 +1000.0001 +100.00001 +10.000001 +1.0000001 +.10000001 +.010000001 +.0010000001 +.00010000001 +.000010000001 +.0000010000001 +.00000010000001 +.000000010000001 +.0000000010000001 +.00000000010000001 +.000000000010000001 +.0000000000010000001 +.00000000000010000001 +1000000.01 +100000.001 +10000.0001 +1000.00001 +100.000001 +10.0000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +.000000000000100000001 +1000000.001 +100000.0001 +10000.00001 +1000.000001 +100.0000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +.0000000000001000000001 +1000000.0001 +100000.00001 +10000.000001 +1000.0000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +.00000000000010000000001 +1000000.00001 +100000.000001 +10000.0000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +.00000000000100000000001 +.000000000000100000000001 +1000000.000001 +100000.0000001 +10000.00000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +.00000000001000000000001 +.000000000001000000000001 +.0000000000001000000000001 +1000000.0000001 +100000.00000001 +10000.000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +.00000000010000000000001 +.000000000010000000000001 +.0000000000010000000000001 +.00000000000010000000000001 +1000000.00000001 +100000.000000001 +10000.0000000001 +1000.00000000001 +100.000000000001 +10.0000000000001 +1.00000000000001 +.100000000000001 +.0100000000000001 +.00100000000000001 +.000100000000000001 +.0000100000000000001 +.00000100000000000001 +.000000100000000000001 +.0000000100000000000001 +.00000000100000000000001 +.000000000100000000000001 +.0000000000100000000000001 +.00000000000100000000000001 +.000000000000100000000000001 +1000000.000000001 +100000.0000000001 +10000.00000000001 +1000.000000000001 +100.0000000000001 +10.00000000000001 +1.000000000000001 +.1000000000000001 +.01000000000000001 +.001000000000000001 +.0001000000000000001 +.00001000000000000001 +.000001000000000000001 +.0000001000000000000001 +.00000001000000000000001 +.000000001000000000000001 +.0000000001000000000000001 +.00000000001000000000000001 +.000000000001000000000000001 +.0000000000001000000000000001 +1000000.0000000001 +100000.00000000001 +10000.000000000001 +1000.0000000000001 +100.00000000000001 +10.000000000000001 +1.0000000000000001 +.10000000000000001 +.010000000000000001 +.0010000000000000001 +.00010000000000000001 +.000010000000000000001 +.0000010000000000000001 +.00000010000000000000001 +.000000010000000000000001 +.0000000010000000000000001 +.00000000010000000000000001 +.000000000010000000000000001 +.0000000000010000000000000001 +.00000000000010000000000000001 +10000000 +1000000.0 +100000.00 +10000.000 +1000.0000 +100.00000 +10.000000 +1.0000000 +.10000000 +.010000000 +.0010000000 +.00010000000 +.000010000000 +.0000010000000 +.00000010000000 +.000000010000000 +.0000000010000000 +.00000000010000000 +.000000000010000000 +.0000000000010000000 +10000000.1 +1000000.01 +100000.001 +10000.0001 +1000.00001 +100.000001 +10.0000001 +1.00000001 +.100000001 +.0100000001 +.00100000001 +.000100000001 +.0000100000001 +.00000100000001 +.000000100000001 +.0000000100000001 +.00000000100000001 +.000000000100000001 +.0000000000100000001 +.00000000000100000001 +10000000.01 +1000000.001 +100000.0001 +10000.00001 +1000.000001 +100.0000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +.000000000001000000001 +10000000.001 +1000000.0001 +100000.00001 +10000.000001 +1000.0000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +.0000000000010000000001 +10000000.0001 +1000000.00001 +100000.000001 +10000.0000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +.00000000000100000000001 +10000000.00001 +1000000.000001 +100000.0000001 +10000.00000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +.00000000001000000000001 +.000000000001000000000001 +10000000.000001 +1000000.0000001 +100000.00000001 +10000.000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +.00000000010000000000001 +.000000000010000000000001 +.0000000000010000000000001 +10000000.0000001 +1000000.00000001 +100000.000000001 +10000.0000000001 +1000.00000000001 +100.000000000001 +10.0000000000001 +1.00000000000001 +.100000000000001 +.0100000000000001 +.00100000000000001 +.000100000000000001 +.0000100000000000001 +.00000100000000000001 +.000000100000000000001 +.0000000100000000000001 +.00000000100000000000001 +.000000000100000000000001 +.0000000000100000000000001 +.00000000000100000000000001 +10000000.00000001 +1000000.000000001 +100000.0000000001 +10000.00000000001 +1000.000000000001 +100.0000000000001 +10.00000000000001 +1.000000000000001 +.1000000000000001 +.01000000000000001 +.001000000000000001 +.0001000000000000001 +.00001000000000000001 +.000001000000000000001 +.0000001000000000000001 +.00000001000000000000001 +.000000001000000000000001 +.0000000001000000000000001 +.00000000001000000000000001 +.000000000001000000000000001 +10000000.000000001 +1000000.0000000001 +100000.00000000001 +10000.000000000001 +1000.0000000000001 +100.00000000000001 +10.000000000000001 +1.0000000000000001 +.10000000000000001 +.010000000000000001 +.0010000000000000001 +.00010000000000000001 +.000010000000000000001 +.0000010000000000000001 +.00000010000000000000001 +.000000010000000000000001 +.0000000010000000000000001 +.00000000010000000000000001 +.000000000010000000000000001 +.0000000000010000000000000001 +10000000.0000000001 +1000000.00000000001 +100000.000000000001 +10000.0000000000001 +1000.00000000000001 +100.000000000000001 +10.0000000000000001 +1.00000000000000001 +.100000000000000001 +.0100000000000000001 +.00100000000000000001 +.000100000000000000001 +.0000100000000000000001 +.00000100000000000000001 +.000000100000000000000001 +.0000000100000000000000001 +.00000000100000000000000001 +.000000000100000000000000001 +.0000000000100000000000000001 +.00000000000100000000000000001 +100000000 +10000000.0 +1000000.00 +100000.000 +10000.0000 +1000.00000 +100.000000 +10.0000000 +1.00000000 +.100000000 +.0100000000 +.00100000000 +.000100000000 +.0000100000000 +.00000100000000 +.000000100000000 +.0000000100000000 +.00000000100000000 +.000000000100000000 +.0000000000100000000 +100000000.1 +10000000.01 +1000000.001 +100000.0001 +10000.00001 +1000.000001 +100.0000001 +10.00000001 +1.000000001 +.1000000001 +.01000000001 +.001000000001 +.0001000000001 +.00001000000001 +.000001000000001 +.0000001000000001 +.00000001000000001 +.000000001000000001 +.0000000001000000001 +.00000000001000000001 +100000000.01 +10000000.001 +1000000.0001 +100000.00001 +10000.000001 +1000.0000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +.000000000010000000001 +100000000.001 +10000000.0001 +1000000.00001 +100000.000001 +10000.0000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +.0000000000100000000001 +100000000.0001 +10000000.00001 +1000000.000001 +100000.0000001 +10000.00000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +.00000000001000000000001 +100000000.00001 +10000000.000001 +1000000.0000001 +100000.00000001 +10000.000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +.00000000010000000000001 +.000000000010000000000001 +100000000.000001 +10000000.0000001 +1000000.00000001 +100000.000000001 +10000.0000000001 +1000.00000000001 +100.000000000001 +10.0000000000001 +1.00000000000001 +.100000000000001 +.0100000000000001 +.00100000000000001 +.000100000000000001 +.0000100000000000001 +.00000100000000000001 +.000000100000000000001 +.0000000100000000000001 +.00000000100000000000001 +.000000000100000000000001 +.0000000000100000000000001 +100000000.0000001 +10000000.00000001 +1000000.000000001 +100000.0000000001 +10000.00000000001 +1000.000000000001 +100.0000000000001 +10.00000000000001 +1.000000000000001 +.1000000000000001 +.01000000000000001 +.001000000000000001 +.0001000000000000001 +.00001000000000000001 +.000001000000000000001 +.0000001000000000000001 +.00000001000000000000001 +.000000001000000000000001 +.0000000001000000000000001 +.00000000001000000000000001 +100000000.00000001 +10000000.000000001 +1000000.0000000001 +100000.00000000001 +10000.000000000001 +1000.0000000000001 +100.00000000000001 +10.000000000000001 +1.0000000000000001 +.10000000000000001 +.010000000000000001 +.0010000000000000001 +.00010000000000000001 +.000010000000000000001 +.0000010000000000000001 +.00000010000000000000001 +.000000010000000000000001 +.0000000010000000000000001 +.00000000010000000000000001 +.000000000010000000000000001 +100000000.000000001 +10000000.0000000001 +1000000.00000000001 +100000.000000000001 +10000.0000000000001 +1000.00000000000001 +100.000000000000001 +10.0000000000000001 +1.00000000000000001 +.100000000000000001 +.0100000000000000001 +.00100000000000000001 +.000100000000000000001 +.0000100000000000000001 +.00000100000000000000001 +.000000100000000000000001 +.0000000100000000000000001 +.00000000100000000000000001 +.000000000100000000000000001 +.0000000000100000000000000001 +100000000.0000000001 +10000000.00000000001 +1000000.000000000001 +100000.0000000000001 +10000.00000000000001 +1000.000000000000001 +100.0000000000000001 +10.00000000000000001 +1.000000000000000001 +.1000000000000000001 +.01000000000000000001 +.001000000000000000001 +.0001000000000000000001 +.00001000000000000000001 +.000001000000000000000001 +.0000001000000000000000001 +.00000001000000000000000001 +.000000001000000000000000001 +.0000000001000000000000000001 +.00000000001000000000000000001 +1000000000 +100000000.0 +10000000.00 +1000000.000 +100000.0000 +10000.00000 +1000.000000 +100.0000000 +10.00000000 +1.000000000 +.1000000000 +.01000000000 +.001000000000 +.0001000000000 +.00001000000000 +.000001000000000 +.0000001000000000 +.00000001000000000 +.000000001000000000 +.0000000001000000000 +1000000000.1 +100000000.01 +10000000.001 +1000000.0001 +100000.00001 +10000.000001 +1000.0000001 +100.00000001 +10.000000001 +1.0000000001 +.10000000001 +.010000000001 +.0010000000001 +.00010000000001 +.000010000000001 +.0000010000000001 +.00000010000000001 +.000000010000000001 +.0000000010000000001 +.00000000010000000001 +1000000000.01 +100000000.001 +10000000.0001 +1000000.00001 +100000.000001 +10000.0000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +.000000000100000000001 +1000000000.001 +100000000.0001 +10000000.00001 +1000000.000001 +100000.0000001 +10000.00000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +.0000000001000000000001 +1000000000.0001 +100000000.00001 +10000000.000001 +1000000.0000001 +100000.00000001 +10000.000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +.00000000010000000000001 +1000000000.00001 +100000000.000001 +10000000.0000001 +1000000.00000001 +100000.000000001 +10000.0000000001 +1000.00000000001 +100.000000000001 +10.0000000000001 +1.00000000000001 +.100000000000001 +.0100000000000001 +.00100000000000001 +.000100000000000001 +.0000100000000000001 +.00000100000000000001 +.000000100000000000001 +.0000000100000000000001 +.00000000100000000000001 +.000000000100000000000001 +1000000000.000001 +100000000.0000001 +10000000.00000001 +1000000.000000001 +100000.0000000001 +10000.00000000001 +1000.000000000001 +100.0000000000001 +10.00000000000001 +1.000000000000001 +.1000000000000001 +.01000000000000001 +.001000000000000001 +.0001000000000000001 +.00001000000000000001 +.000001000000000000001 +.0000001000000000000001 +.00000001000000000000001 +.000000001000000000000001 +.0000000001000000000000001 +1000000000.0000001 +100000000.00000001 +10000000.000000001 +1000000.0000000001 +100000.00000000001 +10000.000000000001 +1000.0000000000001 +100.00000000000001 +10.000000000000001 +1.0000000000000001 +.10000000000000001 +.010000000000000001 +.0010000000000000001 +.00010000000000000001 +.000010000000000000001 +.0000010000000000000001 +.00000010000000000000001 +.000000010000000000000001 +.0000000010000000000000001 +.00000000010000000000000001 +1000000000.00000001 +100000000.000000001 +10000000.0000000001 +1000000.00000000001 +100000.000000000001 +10000.0000000000001 +1000.00000000000001 +100.000000000000001 +10.0000000000000001 +1.00000000000000001 +.100000000000000001 +.0100000000000000001 +.00100000000000000001 +.000100000000000000001 +.0000100000000000000001 +.00000100000000000000001 +.000000100000000000000001 +.0000000100000000000000001 +.00000000100000000000000001 +.000000000100000000000000001 +1000000000.000000001 +100000000.0000000001 +10000000.00000000001 +1000000.000000000001 +100000.0000000000001 +10000.00000000000001 +1000.000000000000001 +100.0000000000000001 +10.00000000000000001 +1.000000000000000001 +.1000000000000000001 +.01000000000000000001 +.001000000000000000001 +.0001000000000000000001 +.00001000000000000000001 +.000001000000000000000001 +.0000001000000000000000001 +.00000001000000000000000001 +.000000001000000000000000001 +.0000000001000000000000000001 +1000000000.0000000001 +100000000.00000000001 +10000000.000000000001 +1000000.0000000000001 +100000.00000000000001 +10000.000000000000001 +1000.0000000000000001 +100.00000000000000001 +10.000000000000000001 +1.0000000000000000001 +.10000000000000000001 +.010000000000000000001 +.0010000000000000000001 +.00010000000000000000001 +.000010000000000000000001 +.0000010000000000000000001 +.00000010000000000000000001 +.000000010000000000000000001 +.0000000010000000000000000001 +.00000000010000000000000000001 +10000000000 +1000000000.0 +100000000.00 +10000000.000 +1000000.0000 +100000.00000 +10000.000000 +1000.0000000 +100.00000000 +10.000000000 +1.0000000000 +.10000000000 +.010000000000 +.0010000000000 +.00010000000000 +.000010000000000 +.0000010000000000 +.00000010000000000 +.000000010000000000 +.0000000010000000000 +10000000000.1 +1000000000.01 +100000000.001 +10000000.0001 +1000000.00001 +100000.000001 +10000.0000001 +1000.00000001 +100.000000001 +10.0000000001 +1.00000000001 +.100000000001 +.0100000000001 +.00100000000001 +.000100000000001 +.0000100000000001 +.00000100000000001 +.000000100000000001 +.0000000100000000001 +.00000000100000000001 +10000000000.01 +1000000000.001 +100000000.0001 +10000000.00001 +1000000.000001 +100000.0000001 +10000.00000001 +1000.000000001 +100.0000000001 +10.00000000001 +1.000000000001 +.1000000000001 +.01000000000001 +.001000000000001 +.0001000000000001 +.00001000000000001 +.000001000000000001 +.0000001000000000001 +.00000001000000000001 +.000000001000000000001 +10000000000.001 +1000000000.0001 +100000000.00001 +10000000.000001 +1000000.0000001 +100000.00000001 +10000.000000001 +1000.0000000001 +100.00000000001 +10.000000000001 +1.0000000000001 +.10000000000001 +.010000000000001 +.0010000000000001 +.00010000000000001 +.000010000000000001 +.0000010000000000001 +.00000010000000000001 +.000000010000000000001 +.0000000010000000000001 +10000000000.0001 +1000000000.00001 +100000000.000001 +10000000.0000001 +1000000.00000001 +100000.000000001 +10000.0000000001 +1000.00000000001 +100.000000000001 +10.0000000000001 +1.00000000000001 +.100000000000001 +.0100000000000001 +.00100000000000001 +.000100000000000001 +.0000100000000000001 +.00000100000000000001 +.000000100000000000001 +.0000000100000000000001 +.00000000100000000000001 +10000000000.00001 +1000000000.000001 +100000000.0000001 +10000000.00000001 +1000000.000000001 +100000.0000000001 +10000.00000000001 +1000.000000000001 +100.0000000000001 +10.00000000000001 +1.000000000000001 +.1000000000000001 +.01000000000000001 +.001000000000000001 +.0001000000000000001 +.00001000000000000001 +.000001000000000000001 +.0000001000000000000001 +.00000001000000000000001 +.000000001000000000000001 +10000000000.000001 +1000000000.0000001 +100000000.00000001 +10000000.000000001 +1000000.0000000001 +100000.00000000001 +10000.000000000001 +1000.0000000000001 +100.00000000000001 +10.000000000000001 +1.0000000000000001 +.10000000000000001 +.010000000000000001 +.0010000000000000001 +.00010000000000000001 +.000010000000000000001 +.0000010000000000000001 +.00000010000000000000001 +.000000010000000000000001 +.0000000010000000000000001 +10000000000.0000001 +1000000000.00000001 +100000000.000000001 +10000000.0000000001 +1000000.00000000001 +100000.000000000001 +10000.0000000000001 +1000.00000000000001 +100.000000000000001 +10.0000000000000001 +1.00000000000000001 +.100000000000000001 +.0100000000000000001 +.00100000000000000001 +.000100000000000000001 +.0000100000000000000001 +.00000100000000000000001 +.000000100000000000000001 +.0000000100000000000000001 +.00000000100000000000000001 +10000000000.00000001 +1000000000.000000001 +100000000.0000000001 +10000000.00000000001 +1000000.000000000001 +100000.0000000000001 +10000.00000000000001 +1000.000000000000001 +100.0000000000000001 +10.00000000000000001 +1.000000000000000001 +.1000000000000000001 +.01000000000000000001 +.001000000000000000001 +.0001000000000000000001 +.00001000000000000000001 +.000001000000000000000001 +.0000001000000000000000001 +.00000001000000000000000001 +.000000001000000000000000001 +10000000000.000000001 +1000000000.0000000001 +100000000.00000000001 +10000000.000000000001 +1000000.0000000000001 +100000.00000000000001 +10000.000000000000001 +1000.0000000000000001 +100.00000000000000001 +10.000000000000000001 +1.0000000000000000001 +.10000000000000000001 +.010000000000000000001 +.0010000000000000000001 +.00010000000000000000001 +.000010000000000000000001 +.0000010000000000000000001 +.00000010000000000000000001 +.000000010000000000000000001 +.0000000010000000000000000001 +10000000000.0000000001 +1000000000.00000000001 +100000000.000000000001 +10000000.0000000000001 +1000000.00000000000001 +100000.000000000000001 +10000.0000000000000001 +1000.00000000000000001 +100.000000000000000001 +10.0000000000000000001 +1.00000000000000000001 +.100000000000000000001 +.0100000000000000000001 +.00100000000000000000001 +.000100000000000000000001 +.0000100000000000000000001 +.00000100000000000000000001 +.000000100000000000000000001 +.0000000100000000000000000001 +.00000000100000000000000000001 diff --git a/tests/bc/sine.txt b/tests/bc/sine.txt new file mode 100644 index 000000000000..d3a547bcd796 --- /dev/null +++ b/tests/bc/sine.txt @@ -0,0 +1,207 @@ +scale = 25 +p = 4 * a(1) +scale = 20 +s(0) +s(0.5) +s(1) +s(2) +s(3) +s(-0.5) +s(-1) +s(-2) +s(-3) +s(p / 7) +s(-p / 7) +s(p / 4) +s(-p / 4) +s(p / 3) +s(-p / 3) +s(p / 2) +s(-p / 2) +s(3 * p / 4) +s(3 * -p / 4) +s(p) +s(-p) +s(3 * p / 2) +s(3 * -p / 2) +s(7 * p / 4) +s(7 * -p / 4) +s(13 * p / 4) +s(13 * -p / 4) +s(2 * p) +s(2 * -p) +s(131231) +s(-131231) +s(69.1967507777) +s(10828) +s(-16248506.847013148) +s(2050281000) +s(8224939) +s(11334231.1154662464) +s(-4109411249.2986954846) +s(-2395915402.13984) +s(-2795874313) +s(-2262647256) +s(3323158182.1239222084) +s(99901384) +s(-4202726050.2780080957) +s(2870000621.3228830588) +s(-4230239450.981045150) +s(-1517506941.2678857223) +s(4004582176) +s(-4193724543.1108508063) +s(-3432511261) +s(1804484812) +s(3229084127) +s(-3565317246.583937244) +s(3503281621) +s(-3469146313.1766891244) +s(-2257308049.307721068) +s(-3978441809) +s(3431564304.3752537) +s(1249644440.2464914559) +s(2395558891.1188487974) +s(-2607820706.4079280116) +s(1208310007) +s(-3758597557.863203175) +s(1186920672) +s(-3988103872) +s(-4280635328.4194857577) +s(1051748072) +s(-1884006279) +s(-1046568719.2698663389) +s(2482991410) +s(-2106101268.1154045959) +s(3530359346.77217900) +s(-3373362543) +s(2601598062) +s(2987020862) +s(-12033356.2057140648) +s(-3721760707) +s(2842387705.4145759704) +s(3515832681.1808393297) +s(-3658522034.16149) +s(3963658030.2860423992) +s(2977802215.597946655) +s(-4271392570.4091498761) +s(2378692585) +s(-3545193743.629374782) +s(-1762458738) +s(-1174277828.4264040126) +s(-1724994857) +s(2802750230.1783499408) +s(-3068133550) +s(3324811474.621822235) +s(2873024984) +s(-3509056632.3888206298) +s(1772903162.647192879) +s(2836543102) +s(4117858580.186) +s(2988632386.4063754522) +s(-4256784971.1770067447) +s(2280820447) +s(-2865200306) +s(-3329592486) +s(519126268) +s(-2452430452) +s(-2693220186.62104082) +s(-3796811992.14485798) +s(3619792326) +s(2697791049.3038381550) +s(3751267834.2808166557) +s(-3761719074) +s(-3824087631) +s(2119301150) +s(1398148974) +s(-3386564819.1351816969) +s(-3171483098) +s(3688944941.3273318162) +s(3060521119) +s(-3527110404) +s(3699631193) +s(3872838898) +s(3880350192) +s(-4109411249.2986954846) +s(-2395915402.13984) +s(-2795874313) +s(-2262647256) +s(3323158182.1239222084) +s(99901384) +s(-4202726050.2780080957) +s(2870000621.3228830588) +s(-4230239450.981045150) +s(-1517506941.2678857223) +s(4004582176) +s(-4193724543.1108508063) +s(-3432511261) +s(1804484812) +s(3229084127) +s(-3565317246.583937244) +s(3503281621) +s(-3469146313.1766891244) +s(-2257308049.307721068) +s(-3978441809) +s(3431564304.3752537) +s(1249644440.2464914559) +s(2395558891.1188487974) +s(-2607820706.4079280116) +s(1208310007) +s(-3758597557.863203175) +s(1186920672) +s(-3988103872) +s(-4280635328.4194857577) +s(1051748072) +s(-1884006279) +s(-1046568719.2698663389) +s(2482991410) +s(-2106101268.1154045959) +s(3530359346.77217900) +s(-3373362543) +s(2601598062) +s(2576349783.2446436039) +s(2987020862) +s(-12033356.2057140648) +s(-3721760707) +s(2842387705.4145759704) +s(3515832681.1808393297) +s(-3658522034.16149) +s(3963658030.2860423992) +s(2977802215.597946655) +s(-4271392570.4091498761) +s(2378692585) +s(-3545193743.629374782) +s(-1762458738) +s(-1174277828.4264040126) +s(-1724994857) +s(2802750230.1783499408) +s(-3068133550) +s(3324811474.621822235) +s(2873024984) +s(-3509056632.3888206298) +s(1772903162.647192879) +s(2836543102) +s(4117858580.186) +s(2988632386.4063754522) +s(-4256784971.1770067447) +s(2280820447) +s(-2865200306) +s(-3329592486) +s(519126268) +s(-2452430452) +s(-2693220186.62104082) +s(-3796811992.14485798) +s(3619792326) +s(2697791049.3038381550) +s(3751267834.2808166557) +s(-3761719074) +s(-3824087631) +s(2119301150) +s(1398148974) +s(-3386564819.1351816969) +s(-3171483098) +s(3688944941.3273318162) +s(3060521119) +s(-3527110404) +s(3699631193) +s(3872838898) +s(3880350192) diff --git a/tests/bc/sine_results.txt b/tests/bc/sine_results.txt new file mode 100644 index 000000000000..7a4a1ab0cbc4 --- /dev/null +++ b/tests/bc/sine_results.txt @@ -0,0 +1,204 @@ +0 +.47942553860420300027 +.84147098480789650665 +.90929742682568169539 +.14112000805986722210 +-.47942553860420300027 +-.84147098480789650665 +-.90929742682568169539 +-.14112000805986722210 +.43388373911755812047 +-.43388373911755812047 +.70710678118654752439 +-.70710678118654752439 +.86602540378443864676 +-.86602540378443864676 +1.00000000000000000000 +-1.00000000000000000000 +.70710678118654752440 +-.70710678118654752440 +0 +0 +-1.00000000000000000000 +1.00000000000000000000 +-.70710678118654752440 +.70710678118654752440 +-.70710678118654752439 +.70710678118654752439 +0 +0 +.38173640790989719211 +-.38173640790989719211 +.08162149793819434415 +.87714140586973771462 +-.91157035998052051623 +-.69638975047120679880 +-.94806056135672896231 +-.54548669379730874215 +.14605234154783145589 +-.12183062787430962391 +-.89832305526331682409 +-.99513029384033555290 +.76528428398894958149 +.51077956237618482050 +-.75908868040685122962 +-.37015497140201575652 +-.51432535569032144654 +.68890201397514289831 +.88200006249578882510 +-.01188893762444044480 +-.55298206739629427055 +-.39165958853437135625 +.17732674488831117445 +-.09648816960119759281 +.15728984163381104344 +-.31554983227150461370 +-.72225704678824601977 +.96170480789326775287 +-.47636475887571231114 +-.98999375714278585763 +-.06715264746977580303 +-.69464867397161089634 +.58037673122614640119 +-.44244898040675115062 +.04242496278231069061 +.96417934585711006987 +-.54513053517818430563 +-.28604677908958958915 +-.68003854521180919710 +.26597321569379963920 +-.34591048991595943570 +-.17084074152217894535 +-.42880744669595980174 +.36518031021580667844 +-.03514839609475800827 +.93891962312087620513 +-.69421849362562852947 +.15169857474887222961 +-.00226070393499995347 +.96209233301706432156 +-.79937182245558378826 +.99966966326862290520 +.85234799672007656117 +-.20824280061137520443 +-.00761257856348159450 +.10708922858398661064 +-.80233147080821341443 +.26521358383069223461 +-.95173930946495828679 +.66210405748455769256 +.30054820568403786217 +.21640593048970779808 +-.87596287572245980692 +.74627849623707962934 +-.25747200288605259984 +-.14700538617135227740 +-.06294254604551440990 +.67948313824962059899 +.83714389089726798409 +.33805040346429707760 +.80273418514828673749 +.72262501870089953244 +-.77469383027517310713 +-.15575896025754423345 +.22191568853026376075 +.25137052589938954082 +-.80534308288073574163 +-.44963537508211028805 +-.92368907556208259630 +-.80963411623457804531 +-.96822928101198069490 +-.46604999828123759716 +.63275578793565409192 +-.40563425346575205109 +.13095444406203282638 +.96217617474547242151 +-.16256793375739137005 +.71791623784197898982 +-.10713685791219679248 +.50758780541979250307 +-.09795373670371402656 +.14605234154783145589 +-.12183062787430962391 +-.89832305526331682409 +-.99513029384033555290 +.76528428398894958149 +.51077956237618482050 +-.75908868040685122962 +-.37015497140201575652 +-.51432535569032144654 +.68890201397514289831 +.88200006249578882510 +-.01188893762444044480 +-.55298206739629427055 +-.39165958853437135625 +.17732674488831117445 +-.09648816960119759281 +.15728984163381104344 +-.31554983227150461370 +-.72225704678824601977 +.96170480789326775287 +-.47636475887571231114 +-.98999375714278585763 +-.06715264746977580303 +-.69464867397161089634 +.58037673122614640119 +-.44244898040675115062 +.04242496278231069061 +.96417934585711006987 +-.54513053517818430563 +-.28604677908958958915 +-.68003854521180919710 +.26597321569379963920 +-.34591048991595943570 +-.17084074152217894535 +-.42880744669595980174 +.36518031021580667844 +-.03514839609475800827 +.75884554410943292265 +.93891962312087620513 +-.69421849362562852947 +.15169857474887222961 +-.00226070393499995347 +.96209233301706432156 +-.79937182245558378826 +.99966966326862290520 +.85234799672007656117 +-.20824280061137520443 +-.00761257856348159450 +.10708922858398661064 +-.80233147080821341443 +.26521358383069223461 +-.95173930946495828679 +.66210405748455769256 +.30054820568403786217 +.21640593048970779808 +-.87596287572245980692 +.74627849623707962934 +-.25747200288605259984 +-.14700538617135227740 +-.06294254604551440990 +.67948313824962059899 +.83714389089726798409 +.33805040346429707760 +.80273418514828673749 +.72262501870089953244 +-.77469383027517310713 +-.15575896025754423345 +.22191568853026376075 +.25137052589938954082 +-.80534308288073574163 +-.44963537508211028805 +-.92368907556208259630 +-.80963411623457804531 +-.96822928101198069490 +-.46604999828123759716 +.63275578793565409192 +-.40563425346575205109 +.13095444406203282638 +.96217617474547242151 +-.16256793375739137005 +.71791623784197898982 +-.10713685791219679248 +.50758780541979250307 +-.09795373670371402656 diff --git a/tests/bc/sqrt.txt b/tests/bc/sqrt.txt new file mode 100644 index 000000000000..afd87ff0f6e6 --- /dev/null +++ b/tests/bc/sqrt.txt @@ -0,0 +1,18 @@ +scale = 20 +sqrt(0) +sqrt(2) +sqrt(4) +sqrt(9) +sqrt(16) +sqrt(25) +sqrt(121) +sqrt(48765) +sqrt(9287356207356) +sqrt(0.189274385967238956872354) +sqrt(12389467137496823.134567829387456283946) +sqrt(.0000000000000000000000000000123) +sqrt(1) +scale = 0; +sqrt(1407) +sqrt(79101) +scale = 6; sqrt(88.1247699921300025847737099094480986051698668662822009535526240) diff --git a/tests/bc/sqrt_results.txt b/tests/bc/sqrt_results.txt new file mode 100644 index 000000000000..10a4fa95d5a5 --- /dev/null +++ b/tests/bc/sqrt_results.txt @@ -0,0 +1,16 @@ +0 +1.41421356237309504880 +2.00000000000000000000 +3.00000000000000000000 +4.00000000000000000000 +5.00000000000000000000 +11.00000000000000000000 +220.82798735667542192643 +3047516.39985021245496456781 +.435056761776252544285578 +111307983.260397019622398608908 +.0000000000000035071355833500363 +1.00000000000000000000 +37 +281 +9.3874794269883757005315658512340070115147163425837869223395574 diff --git a/tests/bc/stdin.txt b/tests/bc/stdin.txt new file mode 100644 index 000000000000..7ddb905dca47 --- /dev/null +++ b/tests/bc/stdin.txt @@ -0,0 +1,15 @@ +#stuff +# "string in a hash comment" +# /* comment in a hash comment */ +1 /* c */ + 2 +"String /* with partial comment" +"String /* with full comment */" +1 /* Comment with partial "string */ + 2 +2 /* Comment with full "string" */ + 3 +3 /* Comment with a # hash comment */ + 4 +"String with a # hash comment" +1 + \ +2 +i = 4 +read() +i *= 5 diff --git a/tests/bc/stdin_results.txt b/tests/bc/stdin_results.txt new file mode 100644 index 000000000000..89dba6613b67 --- /dev/null +++ b/tests/bc/stdin_results.txt @@ -0,0 +1,6 @@ +3 +String /* with partial commentString /* with full comment */3 +5 +7 +String with a # hash comment3 +20 diff --git a/tests/bc/strings.txt b/tests/bc/strings.txt new file mode 100644 index 000000000000..8de9901d064c --- /dev/null +++ b/tests/bc/strings.txt @@ -0,0 +1,16 @@ +"string" +"another string" +"yet +another +string" +"noescapes\n" +"newline +" +print "string" +print "newline\n" + +print "\\\e\n" +print "\d\n" +"abc\\ +def +" diff --git a/tests/bc/strings_results.txt b/tests/bc/strings_results.txt new file mode 100644 index 000000000000..7e1646f03872 --- /dev/null +++ b/tests/bc/strings_results.txt @@ -0,0 +1,8 @@ +stringanother stringyet +another +stringnoescapes\nnewline +stringnewline +\\ +\d +abc\\ +def diff --git a/tests/bc/subtract.txt b/tests/bc/subtract.txt new file mode 100644 index 000000000000..e3ea1ced9ec5 --- /dev/null +++ b/tests/bc/subtract.txt @@ -0,0 +1,153 @@ +0 - 0 +0 - 1 +1 - 0 +1 - 1 +5 - 2 +2 - 9 +321974 - 12845976238457 +2874519803456710938465 - 384723854 +10000000000000000000000000000000000000000 - 999999999999999999999999999999999999999 +10000000000000000000000000000000000000000 - 9999999999999999999999999999999999999999 +10000000000000000000000000000000000000000 - 999999999999999999999999999999999999999.99999999999999999999999999999999999 +10000000000000000000000000000000000000000 - 9999999999999999999999999999999999999999.9999999999999999999999999999999999 +10000000000000000000000000000000000000000 - 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +10000000000000000000000000000000000000001 - 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +10000000000000000000000000000000000000000.0000000001 - 0.0000000000000000000000000000000000000000000000000000000000000000000000000001 +-2 - 6 +-23784692345 - 182934721309467230894628735496027345 +-224352354962873059862 - -1245723576829456278354960278345 +-3468273598 - -12354243 +-0.92345768293 - -2354768923 +-712384634.123476823 - -24768293376 +-1879234638 - -0.917234869234 +-0.9172438692134 - -0.971284967124 +-0.1283475123465 - -0.937462346 +-124765829346.2837468293562 - -0.923467829346 +-12476829385769 - -1928476259034.8378629356 +-0.38476284395876345 - -94875394587623.2357869324857 +-4674596708467.34754789403674343567 - -48672394852354698.237548629345 +979519669 - 3018100865 +929002449 - 3280677283 +0 - -525898 +3- - -3 +18297034019823741908237410928374.81920734712098347109281029873 - 182907.12809 +182039471029834 - 282039471029834 +282039471029834 - 182039471029834 +182039471029834.2801722893 - 282039471029834 +282039471029834.2801722893 - 182039471029834 +182039471029834.2801722893 - 282039471029834.2838 +282039471029834.2801722893 - 182039471029834.2838 +182039471029834 - 282039471029834.2801722893 +282039471029834 - 182039471029834.2801722893 +182039471029834.8297282893 - 282039471029834.2801722893 +282039471029834.8297282893 - 182039471029834.2801722893 +471029834 - 282039471029834 +471029834 - 182039471029834 +471029834.2801722893 - 282039471029834 +471029834.2801722893 - 182039471029834 +471029834.2801722893 - 282039471029834.2838 +471029834.2801722893 - 182039471029834.2838 +471029834 - 282039471029834.2801722893 +471029834 - 182039471029834.2801722893 +471029834.8297282893 - 282039471029834.2801722893 +471029834.8297282893 - 182039471029834.2801722893 +182039471029834 - 471029834 +282039471029834 - 471029834 +182039471029834.2801722893 - 471029834 +282039471029834.2801722893 - 471029834 +182039471029834.2801722893 - 471029834.2838 +282039471029834.2801722893 - 471029834.2838 +182039471029834 - 471029834.2801722893 +282039471029834 - 471029834.2801722893 +182039471029834.8297282893 - 471029834.2801722893 +282039471029834.8297282893 - 471029834.2801722893 +-182039471029834 - 282039471029834 +-282039471029834 - 182039471029834 +-182039471029834.2801722893 - 282039471029834 +-282039471029834.2801722893 - 182039471029834 +-182039471029834.2801722893 - 282039471029834.2838 +-282039471029834.2801722893 - 182039471029834.2838 +-182039471029834 - 282039471029834.2801722893 +-282039471029834 - 182039471029834.2801722893 +-182039471029834.8297282893 - 282039471029834.2801722893 +-282039471029834.8297282893 - 182039471029834.2801722893 +-471029834 - 282039471029834 +-471029834 - 182039471029834 +-471029834.2801722893 - 282039471029834 +-471029834.2801722893 - 182039471029834 +-471029834.2801722893 - 282039471029834.2838 +-471029834.2801722893 - 182039471029834.2838 +-471029834 - 282039471029834.2801722893 +-471029834 - 182039471029834.2801722893 +-471029834.8297282893 - 282039471029834.2801722893 +-471029834.8297282893 - 182039471029834.2801722893 +-182039471029834 - 471029834 +-282039471029834 - 471029834 +-182039471029834.2801722893 - 471029834 +-282039471029834.2801722893 - 471029834 +-182039471029834.2801722893 - 471029834.2838 +-282039471029834.2801722893 - 471029834.2838 +-182039471029834 - 471029834.2801722893 +-282039471029834 - 471029834.2801722893 +-182039471029834.8297282893 - 471029834.2801722893 +-282039471029834.8297282893 - 471029834.2801722893 +182039471029834 - -282039471029834 +282039471029834 - -182039471029834 +182039471029834.2801722893 - -282039471029834 +282039471029834.2801722893 - -182039471029834 +182039471029834.2801722893 - -282039471029834.2838 +282039471029834.2801722893 - -182039471029834.2838 +182039471029834 - -282039471029834.2801722893 +282039471029834 - -182039471029834.2801722893 +182039471029834.8297282893 - -282039471029834.2801722893 +282039471029834.8297282893 - -182039471029834.2801722893 +471029834 - -282039471029834 +471029834 - -182039471029834 +471029834.2801722893 - -282039471029834 +471029834.2801722893 - -182039471029834 +471029834.2801722893 - -282039471029834.2838 +471029834.2801722893 - -182039471029834.2838 +471029834 - -282039471029834.2801722893 +471029834 - -182039471029834.2801722893 +471029834.8297282893 - -282039471029834.2801722893 +471029834.8297282893 - -182039471029834.2801722893 +182039471029834 - -471029834 +282039471029834 - -471029834 +182039471029834.2801722893 - -471029834 +282039471029834.2801722893 - -471029834 +182039471029834.2801722893 - -471029834.2838 +282039471029834.2801722893 - -471029834.2838 +182039471029834 - -471029834.2801722893 +282039471029834 - -471029834.2801722893 +182039471029834.8297282893 - -471029834.2801722893 +282039471029834.8297282893 - -471029834.2801722893 +-182039471029834 - -282039471029834 +-282039471029834 - -182039471029834 +-182039471029834.2801722893 - -282039471029834 +-282039471029834.2801722893 - -182039471029834 +-182039471029834.2801722893 - -282039471029834.2838 +-282039471029834.2801722893 - -182039471029834.2838 +-182039471029834 - -282039471029834.2801722893 +-282039471029834 - -182039471029834.2801722893 +-182039471029834.8297282893 - -282039471029834.2801722893 +-282039471029834.8297282893 - -182039471029834.2801722893 +-471029834 - -282039471029834 +-471029834 - -182039471029834 +-471029834.2801722893 - -282039471029834 +-471029834.2801722893 - -182039471029834 +-471029834.2801722893 - -282039471029834.2838 +-471029834.2801722893 - -182039471029834.2838 +-471029834 - -282039471029834.2801722893 +-471029834 - -182039471029834.2801722893 +-471029834.8297282893 - -282039471029834.2801722893 +-471029834.8297282893 - -182039471029834.2801722893 +-182039471029834 - -471029834 +-282039471029834 - -471029834 +-182039471029834.2801722893 - -471029834 +-282039471029834.2801722893 - -471029834 +-182039471029834.2801722893 - -471029834.2838 +-282039471029834.2801722893 - -471029834.2838 +-182039471029834 - -471029834.2801722893 +-282039471029834 - -471029834.2801722893 +-182039471029834.8297282893 - -471029834.2801722893 +-282039471029834.8297282893 - -471029834.2801722893 diff --git a/tests/bc/subtract_results.txt b/tests/bc/subtract_results.txt new file mode 100644 index 000000000000..a38ffcad76c7 --- /dev/null +++ b/tests/bc/subtract_results.txt @@ -0,0 +1,157 @@ +0 +-1 +1 +0 +3 +-7 +-12845975916483 +2874519803456326214611 +9000000000000000000000000000000000000001 +1 +9000000000000000000000000000000000000000.000000000000000000000000000\ +00000001 +.0000000000000000000000000000000001 +9999999999999999999999999999999999999999.999999999999999999999999999\ +99999999999999999999999999999999999999999999999999999999999 +10000000000000000000000000000000000000000.99999999999999999999999999\ +999999999999999999999999999999999999999999999999999999999999 +10000000000000000000000000000000000000000.00000000009999999999999999\ +99999999999999999999999999999999999999999999999999 +-8 +-182934721309467230894628759280719690 +1245723576605103923392087218483 +-3455919355 +2354768922.07654231707 +24055908741.876523177 +-1879234637.082765130766 +.0540410979106 +.8091148336535 +-124765829345.3602790000102 +-10548353126734.1621370644 +94875394587622.85102408852693655 +48667720255646230.89000073530825656433 +-2038581196 +-2351674834 +525898 +0 +18297034019823741908237410745467.69111734712098347109281029873 +-100000000000000 +100000000000000 +-99999999999999.7198277107 +100000000000000.2801722893 +-100000000000000.0036277107 +99999999999999.9963722893 +-100000000000000.2801722893 +99999999999999.7198277107 +-99999999999999.4504440000 +100000000000000.5495560000 +-282039000000000 +-182039000000000 +-282038999999999.7198277107 +-182038999999999.7198277107 +-282039000000000.0036277107 +-182039000000000.0036277107 +-282039000000000.2801722893 +-182039000000000.2801722893 +-282038999999999.4504440000 +-182038999999999.4504440000 +182039000000000 +282039000000000 +182039000000000.2801722893 +282039000000000.2801722893 +182038999999999.9963722893 +282038999999999.9963722893 +182038999999999.7198277107 +282038999999999.7198277107 +182039000000000.5495560000 +282039000000000.5495560000 +-464078942059668 +-464078942059668 +-464078942059668.2801722893 +-464078942059668.2801722893 +-464078942059668.5639722893 +-464078942059668.5639722893 +-464078942059668.2801722893 +-464078942059668.2801722893 +-464078942059669.1099005786 +-464078942059669.1099005786 +-282039942059668 +-182039942059668 +-282039942059668.2801722893 +-182039942059668.2801722893 +-282039942059668.5639722893 +-182039942059668.5639722893 +-282039942059668.2801722893 +-182039942059668.2801722893 +-282039942059669.1099005786 +-182039942059669.1099005786 +-182039942059668 +-282039942059668 +-182039942059668.2801722893 +-282039942059668.2801722893 +-182039942059668.5639722893 +-282039942059668.5639722893 +-182039942059668.2801722893 +-282039942059668.2801722893 +-182039942059669.1099005786 +-282039942059669.1099005786 +464078942059668 +464078942059668 +464078942059668.2801722893 +464078942059668.2801722893 +464078942059668.5639722893 +464078942059668.5639722893 +464078942059668.2801722893 +464078942059668.2801722893 +464078942059669.1099005786 +464078942059669.1099005786 +282039942059668 +182039942059668 +282039942059668.2801722893 +182039942059668.2801722893 +282039942059668.5639722893 +182039942059668.5639722893 +282039942059668.2801722893 +182039942059668.2801722893 +282039942059669.1099005786 +182039942059669.1099005786 +182039942059668 +282039942059668 +182039942059668.2801722893 +282039942059668.2801722893 +182039942059668.5639722893 +282039942059668.5639722893 +182039942059668.2801722893 +282039942059668.2801722893 +182039942059669.1099005786 +282039942059669.1099005786 +100000000000000 +-100000000000000 +99999999999999.7198277107 +-100000000000000.2801722893 +100000000000000.0036277107 +-99999999999999.9963722893 +100000000000000.2801722893 +-99999999999999.7198277107 +99999999999999.4504440000 +-100000000000000.5495560000 +282039000000000 +182039000000000 +282038999999999.7198277107 +182038999999999.7198277107 +282039000000000.0036277107 +182039000000000.0036277107 +282039000000000.2801722893 +182039000000000.2801722893 +282038999999999.4504440000 +182038999999999.4504440000 +-182039000000000 +-282039000000000 +-182039000000000.2801722893 +-282039000000000.2801722893 +-182038999999999.9963722893 +-282038999999999.9963722893 +-182038999999999.7198277107 +-282038999999999.7198277107 +-182039000000000.5495560000 +-282039000000000.5495560000 diff --git a/tests/bc/timeconst.sh b/tests/bc/timeconst.sh new file mode 100755 index 000000000000..17e765d159ec --- /dev/null +++ b/tests/bc/timeconst.sh @@ -0,0 +1,93 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# Tests the timeconst.bc script from the Linux kernel build. +# You can find the script at kernel/time/timeconst.bc in any Linux repo. +# One such repo is: https://github.com/torvalds/linux + +script="$0" +testdir=$(dirname "$script") + +if [ "$#" -gt 0 ]; then + timeconst="$1" + shift +else + timeconst="$testdir/scripts/timeconst.bc" +fi + +if [ "$#" -gt 0 ]; then + bc="$1" + shift +else + bc="$testdir/../../bin/bc" +fi + +out1="$testdir/../.log_bc_timeconst.txt" +out2="$testdir/../.log_bc_timeconst_test.txt" + +base=$(basename "$timeconst") + +if [ ! -f "$timeconst" ]; then + printf 'Warning: %s does not exist\n' "$timeconst" + printf 'Skipping...\n' + exit 0 +fi + +printf 'Running %s...' "$base" + +nums=$(printf 'for (i = 0; i <= 1000; ++i) { i }\n' | bc) + +for i in $nums; do + + printf '%s\n' "$i" | bc -q "$timeconst" > "$out1" + + err="$?" + + if [ "$err" -ne 0 ]; then + printf '\nOther bc is not GNU compatible. Skipping...\n' + exit 0 + fi + + printf '%s\n' "$i" | "$bc" "$@" -q "$timeconst" > "$out2" + + diff "$out1" "$out2" + + error="$?" + + if [ "$error" -ne 0 ]; then + printf '\nFailed on input: %s\n' "$i" + exit "$error" + fi + +done + +rm -f "$out1" +rm -f "$out2" + +printf 'pass\n' diff --git a/tests/bc/trunc.txt b/tests/bc/trunc.txt new file mode 100644 index 000000000000..364bb224a2e3 --- /dev/null +++ b/tests/bc/trunc.txt @@ -0,0 +1,15 @@ +0$ +1$ +2$ +0.8249167203486$ +1.28937150237$ +2.0$ +28937.92837605126$ +2890.000000000$ +-1$ +-1.128973$ +-9812387.28910273$ +x = 83.298 +x$ +x = -1893.19 +(x)$ diff --git a/tests/bc/trunc_results.txt b/tests/bc/trunc_results.txt new file mode 100644 index 000000000000..c888c95d2daa --- /dev/null +++ b/tests/bc/trunc_results.txt @@ -0,0 +1,13 @@ +0 +1 +2 +0 +1 +2 +28937 +2890 +-1 +-1 +-9812387 +83 +-1893 diff --git a/tests/bc/vars.txt b/tests/bc/vars.txt new file mode 100644 index 000000000000..91e3572c2a0b --- /dev/null +++ b/tests/bc/vars.txt @@ -0,0 +1,7 @@ +scale=10;123981239.981273987 * 12983791827398.29836472638 +scale=100;759634576394.3946587934658364895 / 9834759834895386.36459364958346 +34895734986539489834759837489573498573.398475984759837485734987598345 + 9823749832749872384234872934.28347982374987239847982374 +a=123123123.987239874; b=123123123.239479823748; a+b +20347023.23498723984 - 28934723874.234720384 +scale=100;a=739534985.895347284957;b=238746782364.2374623784; c = a / b; c +s7298367203972395108367910823465293084561329084561390845613409516734503870691837451 + 785621394067928346918023476190834672198467134908618723249671349062187346898241093486139046139084613490817356023871869102746182749061872609129847 diff --git a/tests/bc/vars_results.txt b/tests/bc/vars_results.txt new file mode 100644 index 000000000000..6597d8439723 --- /dev/null +++ b/tests/bc/vars_results.txt @@ -0,0 +1,12 @@ +1609746610419572350599.59456175545 +.0000772397688552681359718594121969204138521230712049526233926741658\ +845368495051158801794834809672994 +34895734996363239667509709873808371507.68195580850970988421481133834\ +5 +246246247.226719697748 +-28914376850.99973314416 +.0030975704827179453786044330548590249517387192084765414205077089498\ +482709063381782183114683451531598 +78562139406792834691802347619083467219846713490861872324967134906218\ +73468982410934861390461390846134908173560238718691027461827490618726\ +09129847 diff --git a/tests/bc/void.txt b/tests/bc/void.txt new file mode 100644 index 000000000000..b85d70c8590a --- /dev/null +++ b/tests/bc/void.txt @@ -0,0 +1,20 @@ +define void stuff(x) { + print "x: ", x, "\n" +} + +define void(x) { + return x +} + +stuff(0) +stuff(1) +stuff(2.2839) +stuff(-9.9289389) + +void(0) +void(1) +void(2.9823) +void(-3.5982) + +void = .198389 +void + 10 diff --git a/tests/bc/void_results.txt b/tests/bc/void_results.txt new file mode 100644 index 000000000000..1e352efe9238 --- /dev/null +++ b/tests/bc/void_results.txt @@ -0,0 +1,9 @@ +x: 0 +x: 1 +x: 2.2839 +x: -9.9289389 +0 +1 +2.9823 +-3.5982 +10.198389 diff --git a/tests/dc/abs.txt b/tests/dc/abs.txt new file mode 100644 index 000000000000..9907dfc6679d --- /dev/null +++ b/tests/dc/abs.txt @@ -0,0 +1,7 @@ +0bpR +1bpR +.218933bpR +138963.9873645bpR +_19bpR +_.1298376bpR +_3892173.289375bpR diff --git a/tests/dc/abs_results.txt b/tests/dc/abs_results.txt new file mode 100644 index 000000000000..921a848ab6f0 --- /dev/null +++ b/tests/dc/abs_results.txt @@ -0,0 +1,7 @@ +0 +1 +.218933 +138963.9873645 +19 +.1298376 +3892173.289375 diff --git a/tests/dc/add.txt b/tests/dc/add.txt new file mode 100644 index 000000000000..42da2f1f309c --- /dev/null +++ b/tests/dc/add.txt @@ -0,0 +1,33 @@ +0 0+pR +0 0 0++pR +0 1+pR +0 1 1++pR +1 1+pR +1 0+pR +2 5+pR +237 483+pR +999 999+pR +2374623 324869356734856+pR +2378639084586723980562 23468729367839+pR +37298367203972395108367910823465293084561329084561390845613409516734503870691837451 785621394067928346918023476190834672198467134908618723249671349062187346898241093486139046139084613490817356023871869102746182749061872609129847+pR +1.1 0+pR +0 1.1+pR +457283.731284923576 37842934672834.3874629385672354+pR +1.0 0.1+pR +3746289134067138046 0.138375863945672398456712389456273486293+pR +_1 _1+pR +_4 _15+pR +_1346782 _1287904651762468913476+pR +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999995 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005+pR +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR +99999999999999999999999999999999999999999999999999999999999.999999999999999999999999999999999999999999999999999999999899999999999999999999999999999999999999999999999999999999999999 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR +99999999999999999999999999999999999989999999999999999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR +_1889985797 2012747315+pR +0 _14338.391079082+pR +_2422297 1.3134942556+pR +_1289374 1289374.2893417 0.238971 28937.28971+++pR +1289374 1289374.2893417 _0.238971 28937.28971+++pR +1289374 1289374.2893417 0.238971 _28937.28971+++pR +1289374 1289374.2893417 _0.238971 _28937.28971+++pR +1289374 _1289374.2893417 _0.238971 _28937.28971+++pR diff --git a/tests/dc/add_results.txt b/tests/dc/add_results.txt new file mode 100644 index 000000000000..542a62ea3a33 --- /dev/null +++ b/tests/dc/add_results.txt @@ -0,0 +1,45 @@ +0 +0 +1 +2 +2 +1 +7 +720 +1998 +324869359109479 +2378639108055453348401 +78562139406792834691802347619083467219846713490861872324967138636055\ +45508706362018540498696043776980521464405852627147161556994835657433\ +00967298 +1.1 +1.1 +37842935130118.1187478621432354 +1.1 +3746289134067138046.138375863945672398456712389456273486293 +-2 +-19 +-1287904651762470260258 +100000000000000000000000000000000000000000000000000000000000.0000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000 +100000000000000000000000000000000000000000000000000000000000.0000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000 +100000000000000000000000000000000000000000000000000000000000.0000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000009999 +99999999999999999999999999999999999999999999999999999999999.99999999\ +99999999999999999999999999999999999999999999999999000000000000000000\ +00000000000000000000000000000000000000009999 +99999999999999999999999999999999999990000000000000000000000.00000000\ +00000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000009999 +122761518 +-14338.391079082 +-2422295.6865057444 +28937.8180227 +2607685.3400807 +2549811.2386027 +2549810.7606607 +-28937.8180227 diff --git a/tests/dc/all.txt b/tests/dc/all.txt new file mode 100644 index 000000000000..6879541f7f1a --- /dev/null +++ b/tests/dc/all.txt @@ -0,0 +1,22 @@ +decimal +add +subtract +multiply +divide +modulus +divmod +power +sqrt +modexp +boolean +negate +trunc +places +shift +abs +scientific +engineering +vars +misc +strings +rand diff --git a/tests/dc/boolean.txt b/tests/dc/boolean.txt new file mode 100644 index 000000000000..815100f0d085 --- /dev/null +++ b/tests/dc/boolean.txt @@ -0,0 +1,80 @@ +0 1(pR +1 1(pR +2 1(pR +_1 1(pR +_1 0(pR +_1 _1(pR +_1 _2(pR +0 1{pR +1 1{pR +2 1{pR +_1 1{pR +_1 0{pR +_1 _1{pR +_1 _2{pR +0 1)pR +1 1)pR +2 1)pR +_1 1)pR +_1 0)pR +_1 _1)pR +_1 _2)pR +0 1}pR +1 1}pR +2 1}pR +_1 1}pR +_1 0}pR +_1 _1}pR +_1 _2}pR +0 0GpR +0 1GpR +1 0GpR +_1 _1GpR +0 _1GpR +_1 0GpR +1 1GpR +238 2GpR +0NpR +1NpR +_1NpR +2398NpR +_2983.2389NpR +0 0MpR +1 0MpR +0 1MpR +1 1MpR +128973240 0MpR +0 2893712MpR +1982 28937MpR +_2938 0MpR +0 _1023.298037MpR +0.283917 0MpR +2389 _1208.28937MpR +0 289.289372MpR +_298.29387 0MpR +_2983.28973 82937MpR +0 _2938.320837MpR +_2089.2308 0MpR +_0.2893 _2938.28973MpR +0.00000 1892MpR +1289.023 .0000MpR +0 0mpR +1 0mpR +0 1mpR +1 1mpR +128973240 0mpR +0 2893712mpR +1982 28937mpR +_2938 0mpR +0 _1023.298037mpR +0.283917 0mpR +2389 _1208.28937mpR +0 289.289372mpR +_298.29387 0mpR +_2983.28973 82937mpR +0 _2938.320837mpR +_2089.2308 0mpR +_0.2893 _2938.28973mpR +0.00000 1892mpR +1289.023 .0000mpR +0.0000 .00000mpR diff --git a/tests/dc/boolean_results.txt b/tests/dc/boolean_results.txt new file mode 100644 index 000000000000..225cebbe04bb --- /dev/null +++ b/tests/dc/boolean_results.txt @@ -0,0 +1,80 @@ +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +0 diff --git a/tests/dc/decimal.txt b/tests/dc/decimal.txt new file mode 100644 index 000000000000..ebbb2dc91b3a --- /dev/null +++ b/tests/dc/decimal.txt @@ -0,0 +1,36 @@ +0pR +0.0pR +.0000pR +000000000000000000000000.00000000000000000000000pR +000000000000000000000000000135482346782356pR +000000000000000000000000002pR +1pR +11pR +123pR +7505pR +1023468723275435238491972521917846pR +4343472432431705867392073517038270398027352709027389273920739037937960379637893607893607893670530278200795207952702873892786172916728961783907893607418973587857386079679267926737520730925372983782793652793pR +_1pR +_203pR +_57pR +_18586pR +_31378682943772818461924738352952347258pR +_823945628745673589495067238723986520375698237620834674509627345273096287563846592384526349872634895763257893467523987578690283762897568459072348758071071087813501875908127359018715023841710239872301387278pR +.123521346523546pR +0.1245923756273856pR +_.1024678456387pR +_0.8735863475634587pR +4.0pR +_6.0pR +234237468293576.000000000000000000000000000000pR +23987623568943567.00000000000000000005677834650000000000000pR +23856934568940675.000000000000000435676782300000000000000456784pR +77567648698496.000000000000000000587674750000000000458563800000000000000pR +2348672354968723.2374823546000000000003256987394502346892435623870000000034578pR +_2354768.000000000000000000000000000000000000pR +_96739874567.000000000347683456pR +_3764568345.000000000004573845000000347683460pR +_356784356.934568495770004586495678300000000pR +74325437345273852773827101738273127312738521733017537073520735207307570358738257390761276072160719802671980267018728630178.7082681027680521760217867841276127681270867827821768173178207830710978017738178678012767377058785378278207385237085237803278203782037237582795870pR +_756752732785273851273728537852738257837283678965738527385272983678372867327835672967385278372637862738627836279863782673862783670.71738178361738718367186378610738617836781603760178367018603760178107735278372832783728367826738627836278378260736270367362073867097307925pR +9812734012837410982345719208345712908357412903587192048571920458712.23957182459817249058172945781pR diff --git a/tests/dc/decimal_results.txt b/tests/dc/decimal_results.txt new file mode 100644 index 000000000000..275d431c6e0f --- /dev/null +++ b/tests/dc/decimal_results.txt @@ -0,0 +1,51 @@ +0 +0 +0 +0 +135482346782356 +2 +1 +11 +123 +7505 +1023468723275435238491972521917846 +43434724324317058673920735170382703980273527090273892739207390379379\ +60379637893607893607893670530278200795207952702873892786172916728961\ +78390789360741897358785738607967926792673752073092537298378279365279\ +3 +-1 +-203 +-57 +-18586 +-31378682943772818461924738352952347258 +-8239456287456735894950672387239865203756982376208346745096273452730\ +96287563846592384526349872634895763257893467523987578690283762897568\ +45907234875807107108781350187590812735901871502384171023987230138727\ +8 +.123521346523546 +.1245923756273856 +-.1024678456387 +-.8735863475634587 +4.0 +-6.0 +234237468293576.000000000000000000000000000000 +23987623568943567.00000000000000000005677834650000000000000 +23856934568940675.000000000000000435676782300000000000000456784 +77567648698496.00000000000000000058767475000000000045856380000000000\ +0000 +2348672354968723.237482354600000000000325698739450234689243562387000\ +0000034578 +-2354768.000000000000000000000000000000000000 +-96739874567.000000000347683456 +-3764568345.000000000004573845000000347683460 +-356784356.934568495770004586495678300000000 +74325437345273852773827101738273127312738521733017537073520735207307\ +570358738257390761276072160719802671980267018728630178.7082681027680\ +52176021786784127612768127086782782176817317820783071097801773817867\ +8012767377058785378278207385237085237803278203782037237582795870 +-7567527327852738512737285378527382578372836789657385273852729836783\ +72867327835672967385278372637862738627836279863782673862783670.71738\ +17836173871836718637861073861783678160376017836701860376017810773527\ +8372832783728367826738627836278378260736270367362073867097307925 +9812734012837410982345719208345712908357412903587192048571920458712.\ +23957182459817249058172945781 diff --git a/tests/dc/divide.txt b/tests/dc/divide.txt new file mode 100644 index 000000000000..38b874e9f175 --- /dev/null +++ b/tests/dc/divide.txt @@ -0,0 +1,33 @@ +20k +0 1/pR +0 321566/pR +0 0.3984567238456/pR +1 1/pR +1 1287469297356/pR +1 0.2395672438567234/pR +1 237586239856.0293596728392360/pR +1249687284356 3027949207835207/pR +378617298617396719 35748521/pR +9348576237845624358 0.9857829375461/pR +35768293846193284 2374568947.045762839567823/pR +_78987234567812345 876542837618936/pR +_356789237555535468 0.3375273860984786903/pR +_5203475364850390 435742903748307.70869378534043296404530458/pR +_0.37861723347576903 7385770896/pR +_0.399454682043962 0.34824389304/pR +_0.6920414523873204 356489645223.76076045304879030/pR +_35872917389671.7573280963748 73924708/pR +_78375896314.4836709876983 0.78356798637817/pR +_2374123896417.143789621437581 347821469423789.1473856783960/pR +_896729350238549726 _34976289345762/pR +_2374568293458762348596 _0.8792370647234987679/pR +_237584692306721845726038 _21783910782374529637.978102738746189024761/pR +_0.23457980123576298375682 _1375486293874612/pR +_0.173897061862478951264 _0.8179327486017634987516298745/pR +_0.9186739823576829347586 _0.235678293458756239846/pR +_0.9375896183746982374568 _13784962873546.0928729395476283745/pR +_2930754618923467.12323745862937465 _734869238465/pR +_23745861923467.874675129834675 _0.23542357869124756/pR +_3878923750692883.7238596702834756902 _7384192674957215364986723.9738461923487621983/pR +1 0.00000000000000000000000000000000000000000002346728372937352457354204563027/pR +239854711289345712 2891374 182 .2893 ///pR diff --git a/tests/dc/divide_results.txt b/tests/dc/divide_results.txt new file mode 100644 index 000000000000..340ae94c1aa6 --- /dev/null +++ b/tests/dc/divide_results.txt @@ -0,0 +1,32 @@ +0 +0 +0 +1.00000000000000000000 +.00000000000077671755 +4.17419336592637110778 +.00000000000420899796 +.00041271738677857404 +10591131829.40901859967857131767 +9483402361494453751.52388015648196297248 +15063068.13735316451497043884 +-90.11223545260531110575 +-1057067521778623447.45138528213564485251 +-11.94161814246320631346 +-.00000000005126306228 +-1.14705437777218917343 +-.00000000000194126663 +-485262.88923145638029569727 +-100024372711.74763635544535424582 +-.00682569681609989277 +25638.20711150436682153521 +2700714504347599627864.24626421085374010264 +10906.42973524078145692731 +.00000000000000017054 +.21260557443109085166 +3.89799997647407910677 +.00000000000006801538 +3988.13076601933678578945 +100864416620775.31076855630746548983 +.00000000052530099381 +42612515855353136519261264261472677699404182.78776061098893912189 +52187553294928.31582417732156163799 diff --git a/tests/dc/divmod.txt b/tests/dc/divmod.txt new file mode 100644 index 000000000000..1633203ff99f --- /dev/null +++ b/tests/dc/divmod.txt @@ -0,0 +1,64 @@ +20k +0 1~pRpR +0 321566~pRpR +0 0.3984567238456~pRpR +1 1~pRpR +1 1287469297356~pRpR +1 0.2395672438567234~pRpR +1 237586239856.0293596728392360~pRpR +1249687284356 3027949207835207~pRpR +378617298617396719 35748521~pRpR +9348576237845624358 0.9857829375461~pRpR +35768293846193284 2374568947.045762839567823~pRpR +_78987234567812345 876542837618936~pRpR +_356789237555535468 0.3375273860984786903~pRpR +_5203475364850390 435742903748307.70869378534043296404530458~pRpR +_0.37861723347576903 7385770896~pRpR +_0.399454682043962 0.34824389304~pRpR +_0.6920414523873204 356489645223.76076045304879030~pRpR +_35872917389671.7573280963748 73924708~pRpR +_78375896314.4836709876983 0.78356798637817~pRpR +_2374123896417.143789621437581 347821469423789.1473856783960~pRpR +_896729350238549726 _34976289345762~pRpR +_2374568293458762348596 _0.8792370647234987679~pRpR +_237584692306721845726038 _21783910782374529637.978102738746189024761~pRpR +_0.23457980123576298375682 _1375486293874612~pRpR +_0.173897061862478951264 _0.8179327486017634987516298745~pRpR +_0.9186739823576829347586 _0.235678293458756239846~pRpR +_0.9375896183746982374568 _13784962873546.0928729395476283745~pRpR +_2930754618923467.12323745862937465 _734869238465~pRpR +_23745861923467.874675129834675 _0.23542357869124756~pRpR +_3878923750692883.7238596702834756902 _7384192674957215364986723.9738461923487621983~pRpR +1 0.00000000000000000000000000000000000000000002346728372937352457354204563027~pRpR +0k +0 1~pRpR +0 321566~pRpR +0 0.3984567238456~pRpR +1 1~pRpR +1 1287469297356~pRpR +1 0.2395672438567234~pRpR +1 237586239856.0293596728392360~pRpR +1249687284356 3027949207835207~pRpR +378617298617396719 35748521~pRpR +9348576237845624358 0.9857829375461~pRpR +35768293846193284 2374568947.045762839567823~pRpR +_78987234567812345 876542837618936~pRpR +_356789237555535468 0.3375273860984786903~pRpR +_5203475364850390 435742903748307.70869378534043296404530458~pRpR +_0.37861723347576903 7385770896~pRpR +_0.399454682043962 0.34824389304~pRpR +_0.6920414523873204 356489645223.76076045304879030~pRpR +_35872917389671.7573280963748 73924708~pRpR +_78375896314.4836709876983 0.78356798637817~pRpR +_2374123896417.143789621437581 347821469423789.1473856783960~pRpR +_896729350238549726 _34976289345762~pRpR +_2374568293458762348596 _0.8792370647234987679~pRpR +_237584692306721845726038 _21783910782374529637.978102738746189024761~pRpR +_0.23457980123576298375682 _1375486293874612~pRpR +_0.173897061862478951264 _0.8179327486017634987516298745~pRpR +_0.9186739823576829347586 _0.235678293458756239846~pRpR +_0.9375896183746982374568 _13784962873546.0928729395476283745~pRpR +_2930754618923467.12323745862937465 _734869238465~pRpR +_23745861923467.874675129834675 _0.23542357869124756~pRpR +_3878923750692883.7238596702834756902 _7384192674957215364986723.9738461923487621983~pRpR +1 0.00000000000000000000000000000000000000000002346728372937352457354204563027~pRpR diff --git a/tests/dc/divmod_results.txt b/tests/dc/divmod_results.txt new file mode 100644 index 000000000000..c55e9303d935 --- /dev/null +++ b/tests/dc/divmod_results.txt @@ -0,0 +1,126 @@ +0 +0 +0 +0 +0 +0 +0 +1.00000000000000000000 +.00000000165742620220 +.00000000000077671755 +.000000000000000000000404744340951948 +4.17419336592637110778 +.000000001121901731436913388268041440 +.00000000000420899796 +.00000053204123177372 +.00041271738677857404 +.00000000000027633393 +10591131829.40901859967857131767 +.000000000000000000008615446968672 +9483402361494453751.52388015648196297248 +.00000000001477790730322167374655468 +15063068.13735316451497043884 +-.00000456715270151800 +-90.11223545260531110575 +-.000000000000000000002529869118878532347 +-1057067521778623447.45138528213564485251 +-.0000022326265743225222025732006233770753463532 +-11.94161814246320631346 +-.00000000004830962712 +-.00000000005126306228 +-.0000000000000000000013970700728 +-1.14705437777218917343 +-.0000000001738947526290727016287423110 +-.00000000000194126663 +-.00000000000045885284 +-485262.88923145638029569727 +-.0000000000000000000075040663382506 +-100024372711.74763635544535424582 +-.000001609445227594519190694403080 +-.00682569681609989277 +-.00000019041665271998 +25638.20711150436682153521 +-.000000000000000000005200979673140462744 +2700714504347599627864.24626421085374010264 +-.15832010238185026960887316509782343287709 +10906.42973524078145692731 +-.00000436867838665327682 +.00000000000000017054 +-.000000000000000000004322546241638067588696083330 +.21260557443109085166 +-.00000000000000000000103666428264443764258 +3.89799997647407910677 +-.000000130244568783188524951028009600190 +.00000000000006801538 +-.00000000467404345575 +3988.13076601933678578945 +-.0000000000000000000004406586308076852 +100864416620775.31076855630746548983 +-53336.193401942302558132911110799109649707477 +.00000000052530099381 +.0000000000000000000000000000000000000000000000000000000000000001907\ +266929376630027064745963897 +42612515855353136519261264261472677699404182.78776061098893912189 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +.0417310245731064 +4 +1.0000000000000000 +0 +1249687284356 +0 +14621810 +10591131829 +.5164321195789 +9483402361494453751 +326154559.235716791539036 +15063068 +-98379182108105 +-90 +-.1523548944025685359 +-1057067521778623447 +-410303423619005.20436836125523739550164962 +-11 +-.37861723347576903 +0 +-.051210789003962 +-1 +-.69204145238732040 +0 +-65736175.7573280963748 +-485262 +-.58582391357943 +-100024372711 +-2374123896417.143789621437581 +0 +-7243991903570 +25638 +-.2165246218974912344 +2700714504347599627864 +-9361314145225494248.811531234062495956534 +10906 +-.23457980123576298375682 +0 +-.1738970618624789512640000000 +0 +-.2116391019814142152206 +3 +-.9375896183746982374568 +0 +-96095925047.12323745862937465 +3988 +-.07316224567061600 +100864416620775 +-3878923750692883.7238596702834756902 +0 +.0000000000000000000000000000000000000000000184866017689020776005643\ +3621086 +42612515855353136519261264261472677699404182 diff --git a/tests/dc/engineering.txt b/tests/dc/engineering.txt new file mode 100644 index 000000000000..90a35052b3cb --- /dev/null +++ b/tests/dc/engineering.txt @@ -0,0 +1,19 @@ +1o +0pR +1pR +_34pR +298pR +_8933pR +29488pR +_148232pR +8927559pR +.2pR +_.02pR +.002pR +_.0003pR +.0000209310pR +_.00000289362pR +.000000859289pR +_.02983672pR +.20201296pR +_.8907210897000000000000000000pR diff --git a/tests/dc/engineering_results.txt b/tests/dc/engineering_results.txt new file mode 100644 index 000000000000..dd26f9bbb138 --- /dev/null +++ b/tests/dc/engineering_results.txt @@ -0,0 +1,18 @@ +0 +1e0 +-34e0 +298e0 +-8.933e3 +29.488e3 +-148.232e3 +8.927559e6 +200e-3 +-20e-3 +2e-3 +-300e-6 +20.9310e-6 +-2.89362e-6 +859.289e-9 +-29.83672e-3 +202.01296e-3 +-890.7210897000000000000000000e-3 diff --git a/tests/dc/errors.txt b/tests/dc/errors.txt new file mode 100644 index 000000000000..8ead40c57e9d --- /dev/null +++ b/tests/dc/errors.txt @@ -0,0 +1,32 @@ +p +P +x +R +d +r +1r +b +4 100000| +_ +] +zp198202389.289374pzp[He World!]xSzpzXfrfxzpfR +[hello]k +3 2 0| +3 0 0| +3.2 3 1| +3 3.2 1| +2 10 34.2| +2 _10 23| +3 0~ +0 _251^pR +. +@ +0 0< $ +0 0> s e % +[string]b +[s][s]+ +[s][s]@ +[s][s]v +0si 0 1 >i +? +? diff --git a/tests/dc/errors/01.txt b/tests/dc/errors/01.txt new file mode 100644 index 000000000000..8adde2ea0deb --- /dev/null +++ b/tests/dc/errors/01.txt @@ -0,0 +1,2 @@ +[[aotsnheau +'t,.h] diff --git a/tests/dc/errors/02.txt b/tests/dc/errors/02.txt new file mode 100644 index 000000000000..893128a8e8e7 --- /dev/null +++ b/tests/dc/errors/02.txt @@ -0,0 +1,10 @@ +0 R +2 1 +1 0+pRpp +34.x +[lip0+si10]ip1+pR +0 1 1++pR +1 1+p? +1 0+pRpp +34.x +[lip0+si10}ip1+si30li<L]sL0sJlLx diff --git a/tests/dc/errors/03.txt b/tests/dc/errors/03.txt new file mode 100644 index 000000000000..a0877e7ec264 --- /dev/null +++ b/tests/dc/errors/03.txt @@ -0,0 +1,2 @@ +0 lip1-si0l0+234sx_9lq+pR 34.x +[li170LLdp1+s+sX10lM<L]sL0sJlLx diff --git a/tests/dc/errors/04.txt b/tests/dc/errors/04.txt new file mode 100644 index 000000000000..a59572d8f761 --- /dev/null +++ b/tests/dc/errors/04.txt @@ -0,0 +1,10 @@ +zp198202389.289374p1+pR +0 1 1+kpR +1 1+pR +1 0IpR +2 9+iR +037 483+pR +999 999+pR +237467456283846vpR +.0000000ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddsdddddddddddddddddddddddddddddddddddddddddddddddddddddsdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddddddddddddddddddddddddddddddddddddddddddddcdddddddddddd96723895687456283846vpR +.0 diff --git a/tests/dc/errors/05.txt b/tests/dc/errors/05.txt new file mode 100644 index 000000000000..924f8ad41960 --- /dev/null +++ b/tests/dc/errors/05.txt @@ -0,0 +1,3 @@ +04604462921702348sx_928374892.28937syzpRlxlq+pR +34.x +[li1702348sxLLLLLL928374892.28937sLLL]sL0sJlLx diff --git a/tests/dc/errors/06.txt b/tests/dc/errors/06.txt new file mode 100644 index 000000000000..e806f63d71b0 --- /dev/null +++ b/tests/dc/errors/06.txt @@ -0,0 +1,4 @@ +00Q;pd69 p d9S16+00I;pd69Q2 0^pR +1O392RQ2 1^pR +1361345237859627#8sM[lip1-si0li!<LeM]^L1OsilLx +[[Done!]pR]SM^lip1-si0li!=LesL1L;0silLx diff --git a/tests/dc/errors/07.txt b/tests/dc/errors/07.txt new file mode 100644 index 000000000000..6d1a9dfa9f95 --- /dev/null +++ b/tests/dc/errors/07.txt @@ -0,0 +1,4 @@ +1 0 1|dR +1 [lipL]SL10sildR +1 [lipL]sL10|Lx +[ diff --git a/tests/dc/errors/08.txt b/tests/dc/errors/08.txt new file mode 100644 index 000000000000..9c34b0e0e24e --- /dev/null +++ b/tests/dc/errors/08.txt @@ -0,0 +1,2 @@ +0 2+p[lip1-si0li!=L^di>L]SL98silLx +i diff --git a/tests/dc/errors/09.txt b/tests/dc/errors/09.txt new file mode 100644 index 000000000000..48c1e09bddda --- /dev/null +++ b/tests/dc/errors/09.txt @@ -0,0 +1,22 @@ +#! /dc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsW#! /bin/dc +0sm[Nx]0s_[]zsWx[li]zs^x[lili100>Nx]0sm[]zsWx[liNx]zsxx[li;rlilix] +x[liN]zsWx[liNx]zsxx[li;rlilix] +x[liNzsxx#! /bin/dc +*sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]x]zsxx#! /bin/dc +*sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsW#! /bipR +00?00pR0.0pR +.0000p0000000000000;0000000000.0pR +.0000p00.000000;00000500000.0pR +.0000p0000000000?00pR0.0pR +.0000p0000000000000;0000000000.0pR +.0000p00.000000;00000500000.0pR +.0000p00000000000000000000000000000000000000000d000.0pR +.0000p000000000000000000000000R +.0000p02730pR +00000pR0.0pR +.0000p0000000000000000000000R +.0000p00pR diff --git a/tests/dc/errors/10.txt b/tests/dc/errors/10.txt new file mode 100644 index 000000000000..5eb80178119a --- /dev/null +++ b/tests/dc/errors/10.txt @@ -0,0 +1,19 @@ +#! /dc +0sm[Nx]0sm[]zsWx[li]zsGx[Nfvfff[]zsm[]zsWx[li]zsPx[Nx]0sm[]zsdc +0sm[Nx]0sm[]x[li]zsGx[Nx]0sm[]zsdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsW#! /bin/dc +0sm[Nx]0s_[]zsWx[li]zs^x[lili100>Nx]0sm[]zsWx[liNx]zsxx[li;rlilix] +x[liNx]zsxx#! /bin/dc +0sm[Nx]0sm[]zsWx[li]zsPx[Nxx]0sm[]x[li]zsGx[Nx]0sm[]zsdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsW#!sdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsW#! /bin/dc +0sm[Nx]0s_@]zsWx[li]zs^x[lili100>Nx]0sm[]zsWx[liNx]zsxx[li;rlilix] +x[liNx]zsxx#! /bin/dc +0sm[Nx]0sm[]zsWx[li]zsPx[Nx]0sm[]zsdc +0sm[Nx]0sm[]x[li]zsGx[Nx]0sm[]zsdc +0sm[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsW#! /bin/dc +0sm[Nx]0s_[]zsWx[li]zs^x[lili100>Nx]0sm[]zsWx[liNx]zsxx[li;rlilix] +x[liNx]zsxx#! /bin/dc +0sm[Nx]0sm[]zsWx[li]zsPx[Nx]0sm[]zsdc +0sm[Nx]0sm[]z…Wx[li]zsGd[Nx]0sm[]zsWx[li]zsGx[Nx]0sm[]zsW#! /Wx[li]zs^x[Nx]0s_[]zsWx[li]zs^x[lili100>Nx]0sm[]zs]0sm[]zsdc diff --git a/tests/dc/errors/11.txt b/tests/dc/errors/11.txt new file mode 100644 index 000000000000..b2fa5d291941 --- /dev/null +++ b/tests/dc/errors/11.txt @@ -0,0 +1,4 @@ +#! /bin/dc +[[Done!]aa]sM[lip1-si0li>LeM]sL10silLx +[[Done!]pR]sM[]sL10silLx +[R]sM[lip=`eM]sL;Lx diff --git a/tests/dc/errors/12.txt b/tests/dc/errors/12.txt new file mode 100644 index 000000000000..711f970c8615 --- /dev/null +++ b/tests/dc/errors/12.txt @@ -0,0 +1,5 @@ +1;'9R 0si[lid1+silv14l*rliP+{Kla1;0>xli1+sililiSi1+sili14li?-si0!>x]li1162 2346dvdddd;ddddddddddddd?-sdddddddddd0+ddd 1+pR +0dvdddd;ddSddddddddddd 0si[lid1+sil1sili14li?-si]dsxx[li;00!>x]li1162 2346dvddddddddddddddddddddddddd0 0+ddd 1+pR +0 0 0+ddddvdddd;ddddddddddddddddddddddd;9R +0!0 0+ddd 1+pR +0 diff --git a/tests/dc/errors/13.txt b/tests/dc/errors/13.txt new file mode 100644 index 000000000000..5737fd6d9a7c --- /dev/null +++ b/tests/dc/errors/13.txt @@ -0,0 +1,17 @@ +zp198[Oelln, Wor\W!]pppppppppppppppR +_1 _1(pR +_1 _2(pR +2 1{pR +_1 1{pR 999+pR +2374623 324869356734856+pR +2378639084aaaaaaaaaaaaaaxaaaaaaaaaaaaaaR +3729836720397239510836791082346529K084561329084561390845613409516734503870691837451 78562139198467134908618723249671349062187346898241093486139046139084613490817356023871869102746999999061872609129847+pR +1.1 0+pR +0 1.1+pR +457283.731284923576 37842934672834.3874629385672354+pR +1.0 0.1+pR +3746289134067138046 0.138375863945R72398456712389456273486293+pR +_1 _1+pR +_4 _15+pR +_1346782 _1287904651762468913476+pR +99999999999999999999999999999999999999999999999999999999999.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999N9 0.000000000000000000000000000000000000ßßßßßßßßßßßßßßßßßßßßßßßßßßß000000000000000000000000000000000000000000000000000000000000000000000000000000000001+pR diff --git a/tests/dc/errors/14.txt b/tests/dc/errors/14.txt new file mode 100644 index 000000000000..c84b2b60ae06 --- /dev/null +++ b/tests/dc/errors/14.txt @@ -0,0 +1,7 @@ +0bpR +1bpR +.218933bpR +138963.9873645bpR +_19bpR +_.1298376bpR +_3892173.289375bpR:
\ No newline at end of file diff --git a/tests/dc/errors/15.txt b/tests/dc/errors/15.txt new file mode 100644 index 000000000000..adb809dcca3d --- /dev/null +++ b/tests/dc/errors/15.txt @@ -0,0 +1,11 @@ +0bpax1bpR +1bpR +.218933b987pR +_19bp/98 +_38_.1/19bp38_.1/98 +_38921.1/98/98 +_38_.1/98 +_38921.1/98 +98 +_38921.1/98 +73.289 75bpu diff --git a/tests/dc/errors/16.txt b/tests/dc/errors/16.txt new file mode 100644 index 000000000000..1eef81b7317e --- /dev/null +++ b/tests/dc/errors/16.txt @@ -0,0 +1,7 @@ +0 0;^dddddRps.R@s.16dddRRd^2ddRZ(b-P;;$p;;;;;;9;;;;;;$ppppppppppppp33 +_ +1 0+pR +2 5+pR +)37 =8M+p[ +999 999+ÿR +237
\ No newline at end of file diff --git a/tests/dc/errors/17.txt b/tests/dc/errors/17.txt new file mode 100644 index 000000000000..dde24cc76040 --- /dev/null +++ b/tests/dc/errors/17.txt @@ -0,0 +1,21 @@ +0 1(pR +1;;;;;pR +1 +0 18d[963.9873R +0 1894^666666696666666666PH66R]sM[liv1-si0li!<LpR +_1 0{pR +_1 _1{pR +_1 f2872917389671.7573280963748_13784962873546.09287293954765~pRpR +_23745861923467.874675129834675 _0.23542357869124756~pRpR +_3878923750692883.7238596702834756902 _7384192674957215364986723.973F461923487621983~pRpR23873204 356489645223.76076045304879030~pRpR +_35872917389671.75732809637 +1 0.071.75732809637 +1 0.000000000000000000000000000000000000000000000000000000000000000234672x37293735888888888888888888888888888888$88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888488888888<8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888884986723.973F461923487621983~pRpR23873204 356489645223.76076045304879030~pRpR +_35872917389671.75732809637 +1 0.071.75732809637 +1 0.000000000000000000000000000000000000000000000000000000000000000234672837293735888888888888888888888888888888$88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888488888888<888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888S8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888Z888888888888 +_14pR +=398NpR +_2983 +48895 5067C 2i>LeM]sL1@silLx +[[
\ No newline at end of file diff --git a/tests/dc/errors/18.txt b/tests/dc/errors/18.txt new file mode 100644 index 000000000000..685b251165db --- /dev/null +++ b/tests/dc/errors/18.txt @@ -0,0 +1,3 @@ +1o VVf[li;WORli1S/Zli1;rORli1dH|2li@d-NliO+rK28729@9547628O745/pR +_29307546189299999999999999999999999999999999999995 0.00000000000000000000000000009999999999999999999+99$9999999999.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999995 0.0000000000000000000000000000000000R0000000000000000000000000000000000000+0000000000000000-0000000000000000000005+pR +99999999999999999999999999999999999999999999999999999999999.999999999999999999999.99999999999999999999999999999999999999999900000000000000000000000R0000000000000000000000000000000000000+0000000000000000-0000000000000000000005+pR999999999999999999999999999999999999999999 0.00000000000000000000000000000000000000000000000000000000000C0020P00000000000000000000000000000000000007fli1+7fli1+si;d7dli1+si;r=Rls1d:Mli +i100>x]dsxx[l!Wxr>x]dsxx[p!Wx]li17396719 00000000001+pR diff --git a/tests/dc/errors/19.txt b/tests/dc/errors/19.txt Binary files differnew file mode 100644 index 000000000000..defb1546c625 --- /dev/null +++ b/tests/dc/errors/19.txt diff --git a/tests/dc/errors/20.txt b/tests/dc/errors/20.txt new file mode 100644 index 000000000000..e6126f0b39f2 --- /dev/null +++ b/tests/dc/errors/20.txt @@ -0,0 +1,9 @@ +#!rpR +I21PPrP PPPP PPsPdaP1:bpR + PPPPdPP1d:bpRR +I21PPrP PPPP PPsPdaP1:bpR + PPPPdPP asrp#! asrpR +I21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PPPPdPP1d:bpRR +I21PPrP PPPP PPsPdaP1:bpR + PPPPdPP asrp#! asrpR +I21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Y;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;>;;;;;;;;;;;;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Y;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\ No newline at end of file diff --git a/tests/dc/errors/21.txt b/tests/dc/errors/21.txt new file mode 100644 index 000000000000..1a6e5c05b0ce --- /dev/null +++ b/tests/dc/errors/21.txt @@ -0,0 +1,7 @@ +0bpR +1bpR +.218933bpR +138963.9873645bpR +S19bpR +_.1298376bpR +_3892173.289375bpR diff --git a/tests/dc/errors/22.txt b/tests/dc/errors/22.txt new file mode 100644 index 000000000000..23d5e2c37808 --- /dev/null +++ b/tests/dc/errors/22.txt @@ -0,0 +1,37 @@ +[Hello, World!]ZpR +[HepR +[Hello, \[ World!]pR +[Hello, \] World!]ZpR +[Hello, \] World!]pR +[30pR] +f29pR] +[28pR] +[27pR] +[26pR] +[25pR] +[24pR] +[23pR] +[22pR] +[21pR] +[20pR] +[19pR] +[18pR] +[17pR] +[16pR] +[15pR] +[14pR] +[13pR] +[12pR] +[11pR] +[10pR] +[9pR] +[8pR] +[7pR] +[6pR] +[5pR] +[4pR] +[3pR] +[2pR] +[1pR] +[xz0<x]dsxx +[\
\ No newline at end of file diff --git a/tests/dc/errors/23.txt b/tests/dc/errors/23.txt Binary files differnew file mode 100644 index 000000000000..bba814851f94 --- /dev/null +++ b/tests/dc/errors/23.txt diff --git a/tests/dc/errors/24.txt b/tests/dc/errors/24.txt new file mode 100644 index 000000000000..cc0750c6fd35 --- /dev/null +++ b/tests/dc/errors/24.txt @@ -0,0 +1 @@ + [] 0:xX:i 0:iX:in/dc.873C45}pR diff --git a/tests/dc/misc.txt b/tests/dc/misc.txt new file mode 100644 index 000000000000..c1e7f9fd4070 --- /dev/null +++ b/tests/dc/misc.txt @@ -0,0 +1,2 @@ +zp198202389.289374pzp[Hello, World!]pzpzpfrfczpfR +1n1pR diff --git a/tests/dc/misc_results.txt b/tests/dc/misc_results.txt new file mode 100644 index 000000000000..512944a3fc1f --- /dev/null +++ b/tests/dc/misc_results.txt @@ -0,0 +1,21 @@ +0 +198202389.289374 +2 +Hello, World! +4 +5 +5 +4 +Hello, World! +2 +198202389.289374 +0 +4 +5 +Hello, World! +2 +198202389.289374 +0 +0 +0 +11 diff --git a/tests/dc/modexp.txt b/tests/dc/modexp.txt new file mode 100644 index 000000000000..a6afb998558e --- /dev/null +++ b/tests/dc/modexp.txt @@ -0,0 +1,103 @@ +0 0 1|pR +1 0 1|pR +1 0 2|pR +0 10 1|pR +1 293 1|pR +1 2789365 2|pR +100 8 7|pR +10922384 15031007 201|pR +3346529 189 254|pR +4113416930 197 14|pR +7709 5887 111|pR +5487406 3252 128|pR +2080527 2279453822 219|pR +48895 50678 232|pR +1535808383 2902995144 18|pR +8437837 2882198 69|pR +35363 25806 2|pR +3221177403 1560419989 189|pR +227 42775 163|pR +2811398069 37500 173|pR +15046850 3859895697 195|pR +15770756 3621999893 119|pR +6937927 3719297189 183|pR +12573 43819 209|pR +42098463 7584603 136|pR +8656683 1328292415 226|pR +209 81 157|pR +141 13317429 26|pR +809485795 60745 101|pR +4882 1388217898 38|pR +750704 78 119|pR +668879580 2888860497 179|pR +1152725844 15295742 154|pR +16160694 8981529 154|pR +216 102 3|pR +3691227289 5344109 232|pR +2195559299 61 222|pR +2478990626 13007440 30|pR +45083 44 117|pR +224 55824 53|pR +1372700133 89 94|pR +205 10422 48|pR +11887 12 73|pR +5955 24353 114|pR +1201697310 789722419 6|pR +56577 231 229|pR +96 38841 189|pR +6529661 5636520 209|pR +11005 15955685 27|pR +9709 231 132|pR +59790 1034579699 166|pR +47892 14536879 79|pR +48 208 21|pR +33036 3877 65|pR +164 6527085 249|pR +12146850 224 37|pR +218 16425679 62|pR +51 27641 95|pR +3076735605 49154 32|pR +515652717 4117874315 143|pR +300672671 720768884 110|pR +9422066 206 5|pR +43 97 13|pR +545174510 65319 126|pR +3317462730 704990271 51|pR +47316 23231 202|pR +7236571 4379567 106|pR +2584584521 2459274189 29|pR +61562 5035178 178|pR +65302 112 151|pR +63040 2168854052 213|pR +9039611 2370306559 62|pR +16414384 1020652061 83|pR +7491 3853569905 172|pR +1180322494 46670 84|pR +3823343557 3865107254 127|pR +6240872 55335 39|pR +2281401897 1098411 251|pR +61 2949190429 231|pR +8981024 162 43|pR +1 3568883218 212|pR +4217100969 3471787779 8|pR +3232237 13 243|pR +29280 3972452706 100|pR +13077 6431923 216|pR +104 3098510775 140|pR +9503298 174 242|pR +3424695712 12184 23|pR +184 15066347 151|pR +2935856 14003205 184|pR +1386637762 2128151420 71|pR +154 11960656 12|pR +743976432 4004778779 136|pR +3909160595 3575680922 21|pR +26133 3580 147|pR +409154 170 68|pR +149 55629 40|pR +5753 13776176 32|pR +3831447473 658273178 98|pR +1527252003 2300622 207|pR +3363824553 8244645 215|pR +20 145 101|pR +4005077294 2196555621 94|pR diff --git a/tests/dc/modexp_results.txt b/tests/dc/modexp_results.txt new file mode 100644 index 000000000000..5bf0f146e967 --- /dev/null +++ b/tests/dc/modexp_results.txt @@ -0,0 +1,103 @@ +1 +1 +1 +0 +0 +1 +4 +74 +1 +0 +98 +0 +72 +1 +1 +1 +1 +108 +36 +52 +65 +8 +181 +22 +7 +123 +93 +21 +17 +20 +1 +108 +58 +22 +0 +105 +161 +16 +40 +15 +45 +25 +64 +69 +0 +225 +27 +1 +22 +73 +92 +38 +15 +16 +173 +33 +32 +21 +25 +109 +71 +1 +4 +62 +15 +90 +29 +5 +40 +84 +40 +53 +8 +31 +64 +44 +14 +13 +145 +1 +1 +1 +76 +0 +189 +104 +192 +9 +119 +56 +45 +4 +32 +16 +135 +4 +29 +1 +49 +0 +128 +6 +18 diff --git a/tests/dc/modulus.txt b/tests/dc/modulus.txt new file mode 100644 index 000000000000..613944b2001a --- /dev/null +++ b/tests/dc/modulus.txt @@ -0,0 +1,70 @@ +20k +1 1%pR +2 1%pR +16 4%pR +15 4%pR +17 4%pR +2389473 5%pR +39240687239 1%pR +346728934 23958%pR +3496723859067234 298375462837546928347623059375486%pR +_1 1%pR +_2 1%pR +_47589634875689345 37869235%pR +_1274852934765 2387628935486273546%pR +_6324758963 237854962%pR +1 _1%pR +2 _1%pR +2 _2%pR +2 _3%pR +16 5%pR +15 5%pR +14 5%pR +89237423 _237856923854%pR +123647238946 _12467%pR +_1 _1%pR +_2 _1%pR +_2 _2%pR +_2 _3%pR +_13 _7%pR +_14 _7%pR +_15 _7%pR +_12784956 _32746%pR +_127849612 _23712347682193%pR +0k +1 1%pR +2 1%pR +16 4%pR +15 4%pR +17 4%pR +2389473 5%pR +39240687239 1%pR +346728934 23958%pR +3496723859067234 298375462837546928347623059375486%pR +_1 1%pR +_2 1%pR +_47589634875689345 37869235%pR +_1274852934765 2387628935486273546%pR +_6324758963 237854962%pR +1 _1%pR +2 _1%pR +2 _2%pR +2 _3%pR +16 5%pR +15 5%pR +14 5%pR +89237423 _237856923854%pR +123647238946 _12467%pR +_1 _1%pR +_2 _1%pR +_2 _2%pR +_2 _3%pR +_13 _7%pR +_14 _7%pR +_15 _7%pR +_12784956 _32746%pR +_127849612 _23712347682193%pR +_3191280681 641165986%pR +0k _899510228 _2448300078.40314%pR +0k _7424863 _207.2609738667%pR +0k 3769798918 0.6%pR diff --git a/tests/dc/modulus_results.txt b/tests/dc/modulus_results.txt new file mode 100644 index 000000000000..7d718d22a439 --- /dev/null +++ b/tests/dc/modulus_results.txt @@ -0,0 +1,68 @@ +0 +0 +0 +0 +0 +0 +0 +.00000000000000002026 +2747189239559.46904933397471305894 +0 +0 +-.00000000000011057855 +-.00076922992566770712 +-.00000000000050364144 +0 +0 +0 +.00000000000000000002 +0 +0 +0 +.00000000070585524350 +.00000000000000002898 +0 +0 +0 +-.00000000000000000002 +-.00000000000000000005 +0 +-.00000000000000000002 +-.00000000000000011722 +-.00000002640923745817 +0 +0 +0 +3 +1 +3 +0 +8758 +3496723859067234 +0 +0 +-8236960 +-1274852934765 +-140529951 +0 +0 +0 +2 +1 +0 +4 +89237423 +6692 +0 +0 +0 +-2 +-6 +0 +-1 +-14016 +-127849612 +-626616737 +-899510228.00000 +-153.1331732059 +.4 diff --git a/tests/dc/multiply.txt b/tests/dc/multiply.txt new file mode 100644 index 000000000000..b4faac28b243 --- /dev/null +++ b/tests/dc/multiply.txt @@ -0,0 +1,43 @@ +0k +0 0*pR +0.000 0*pR +1 0*pR +0 1*pR +0 2498752389672835476*pR +873246913745129084576134 0*pR +1 472638590273489273456*pR +12374861230476103672835496 1*pR +1 1*pR +2 1*pR +1 2*pR +2 2*pR +3 14*pR +17 8*pR +1892467513846753 1872439821374591038746*pR +328962735862.2973546835638947635 1728465791348762356*pR +38745962374538.387427384672934867234 0.1932476528394672837568923754*pR +9878894576289457634856.2738627161689017387608947567654 37842939768237596237854203.29874372139852739126739621793162*pR +_1 1*pR +_1 2*pR +78893457 _34876238956*pR +235678324957634 _0.2349578349672389576*pR +_12849567821934 12738462937681*pR +1274861293467.927843682937462 _28935678239*pR +2936077239872.12937462836 _0.012842357682435762*pR +2387692387566.2378569237546 _272189345628.123875629835876*pR +0.012348629356782835962 _23487692356*pR +0.4768349567348675934 _0.23756834576934857638495*pR +0.98748395367485962735486 _4675839462354867.376834956738456*pR +_321784627934586 _235762378596*pR +_32578623567892356 _0.32567384579638456*pR +_35768232346876 _2348672935602387620.28375682349576237856*pR +_0.2356728394765234 _238759624356978*pR +_0.2345768212346780 _0.235768124697074385948943532045*pR +_0.370873860736785306278630 _7835678398607.7086378076867096270*pR +_78365713707.7089637863786730 _738580798679306780*pR +_73867038956790490258249 _0.7379862716391723672803679*pR +_378621971598721837710387 _98465373878350798.09743896037963078560*pR +37164201 2931559660*pR +679468076118972457796560530571.46287161642138401685 93762.2836*pR +.000000000000000000000000001 .0000000000000000000000001*pR +239 289 _98 .8937 _.1893 28937*****pR diff --git a/tests/dc/multiply_results.txt b/tests/dc/multiply_results.txt new file mode 100644 index 000000000000..9666059a5848 --- /dev/null +++ b/tests/dc/multiply_results.txt @@ -0,0 +1,43 @@ +0 +0 +0 +0 +0 +0 +472638590273489273456 +12374861230476103672835496 +1 +2 +2 +4 +42 +136 +3543531533584430580556128344529291738 +568600835566479683035874339053.4411638427543228060 +7487566285885.8557453089005171423976251098 +373846412427291014394738378015501363938345620046.7869650248829232267\ +2297002026819 +-1 +-2 +-2751507058396910892 +-55374468980751.0837656919743223184 +-163683743464924630346895054 +-36888976187143312550878.567134791289418 +-37706154097.696628262157533781 +-649904428532907022680241.947918694247541 +-290040807.350385412976669306472 +-.11328089187650139309272 +-4617316439035114.40320367843985107357898 +75864709277486862054521256 +10610005628108234.92015040406042336 +84007879267445533366251128067927.91168012197674537856 +56269158624557.1027018519702852 +.055305737239900889424090264801 +2906048299183.472237078104362540110129 +57879411419313585866282299201.3825582163029400 +54512860676747314187949.9414724679950990587298071 +37281153992026463004361915151761464058058.54968338992209002720 +108949072447731660 +63708478450213482928510139572007971.83536929222529239687 +0 +33137343861.8586 diff --git a/tests/dc/negate.txt b/tests/dc/negate.txt new file mode 100644 index 000000000000..f4a3825ec72f --- /dev/null +++ b/tests/dc/negate.txt @@ -0,0 +1,3 @@ +1_pR +2_pR +129837.218092_pR diff --git a/tests/dc/negate_results.txt b/tests/dc/negate_results.txt new file mode 100644 index 000000000000..e58abbf70d91 --- /dev/null +++ b/tests/dc/negate_results.txt @@ -0,0 +1,3 @@ +-1 +-2 +-129837.218092 diff --git a/tests/dc/places.txt b/tests/dc/places.txt new file mode 100644 index 000000000000..9ba686e2d628 --- /dev/null +++ b/tests/dc/places.txt @@ -0,0 +1,16 @@ +0 0@pR +1 0@pR +2 0@pR +0.0023896 0@pR +1.298346 0@pR +2.00000000 0@pR +0.0023896 3@pR +1.298346 4@pR +2.00000000 5@pR +289 3@pR +18.34 6@pR +_183.1 0@pR +_23.238 8@pR +_343.23 2@pR +_.1897263 0@pR +.1982365 0@pR diff --git a/tests/dc/places_results.txt b/tests/dc/places_results.txt new file mode 100644 index 000000000000..1ca49ae89932 --- /dev/null +++ b/tests/dc/places_results.txt @@ -0,0 +1,16 @@ +0 +1 +2 +0 +1 +2 +.002 +1.2983 +2.00000 +289.000 +18.340000 +-183 +-23.23800000 +-343.23 +0 +0 diff --git a/tests/dc/power.txt b/tests/dc/power.txt new file mode 100644 index 000000000000..7e75a91c78a3 --- /dev/null +++ b/tests/dc/power.txt @@ -0,0 +1,44 @@ +20k +0 0^pR +0 1^pR +0 1894^pR +1 0^pR +39746823 0^pR +0.238672983047682 0^pR +18394762374689237468.97354862973846 0^pR +1 1^pR +2 1^pR +18927361346 1^pR +0.23523785962738592635777 1^pR +328956734869213746.89782398457234 1^pR +8937 98^pR +0.124876812394 2396^pR +93762.2836 13^pR +1 _1^pR +2 _1^pR +10 _1^pR +683734768 _1^pR +38579623756.897937568235 _1^pR +1 _32467^pR +2 _53^pR +23897 _213^pR +_1 1^pR +_1 2^pR +_2 1^pR +_2 2^pR +_237 294^pR +_3746 28^pR +_0.3548 35^pR +_4267.234 37^pR +_326.3246 78^pR +_1 _1^pR +_1 _2^pR +_2 _1^pR +_2 _2^pR +_237 _293^pR +_784 _23^pR +_86 _7^pR +_0.23424398 _781^pR +_178.234786 _879^pR +_1274.346 _768^pR +_0.2959371298 227^pR diff --git a/tests/dc/power_results.txt b/tests/dc/power_results.txt new file mode 100644 index 000000000000..280347a9f258 --- /dev/null +++ b/tests/dc/power_results.txt @@ -0,0 +1,72 @@ +1 +0 +0 +1 +1 +1 +1 +1 +2 +18927361346 +.23523785962738592635777 +328956734869213746.89782398457234 +16473742664221279051571200630760751138799221376964991600670000200609\ +08006052596520320731708604393844468006290371918262741885989163144389\ +39367835091560809036359941703341471396407660150658436796925310445979\ +21333166245765946557344383284626113908419359990042883048537750217279\ +17481980123593363177308481941550382845381799410533956718500484099889\ +610805653325917409549921909941664118421333562129 +0 +43287877285033571298394739716218787350087163435619825150259705419.98\ +016445740928054425 +1.00000000000000000000 +.50000000000000000000 +.10000000000000000000 +.00000000146255543348 +.00000000002592041867 +1.00000000000000000000 +.00000000000000011102 +0 +-1 +1 +-2 +4 +14997322375665265051328725757939209353051902095893907150382724666290\ +49749481660976421019742616298227588464420182758442163654172400528243\ +00885441207762486233574213374503090372518590691583139696652847404883\ +08573912261119588874308960204159666762789603037188471170006223907416\ +60492840269152716750700089148882139254399347568222390231015487895905\ +73727080561379177721440905866857248917982113340543176658480139248897\ +54802503253413282808814063861470711399810899724515727713334909764746\ +27910290211411231279325882505708287941671508154740003122373284699097\ +78346501539634198926772266511968381368929692275950529960923432771985\ +12597189390708050983487158873301681237787429436264801751664042999180\ +3448659818912436089 +11478830555358864333472551120140548480416206583184496764727387456058\ +792742209537931243951391229607936 +-.00000000000000017759 +-2067373624686414405470850679965010694114490999957199847684803894306\ +56243666149296582304582679590231948238805965642713928910384741502707\ +.23224479257866798694 +11606078892843496082360561256965139908586179418605021706789617179085\ +85768049299693425729565480314913006780973928345684673490252494674985\ +0186164225375953066263609289359900615361965737717208159874390.293769\ +70206344604971 +-1.00000000000000000000 +1.00000000000000000000 +-.50000000000000000000 +.25000000000000000000 +0 +0 +-.00000000000002874159 +-1945134149489344891879057554905782841936258356736314337975569799825\ +94091939572752348215929683891336730843553721422164737465108229034947\ +87333189564755763444242676978610321731298729194092653999616928308494\ +26419468484566422775668903315088810746121307679948574976162519479931\ +18935243698160094347216562490000767121041786977792546155155934655909\ +14123833869470494708767968978717730012864171105540029928688274136791\ +98175053824022144065005509214813689232148489884560100200475909009813\ +340098100705258138.98542904577525702068 +0 +0 +0 diff --git a/tests/dc/rand.txt b/tests/dc/rand.txt new file mode 100644 index 000000000000..250da02db3c8 --- /dev/null +++ b/tests/dc/rand.txt @@ -0,0 +1 @@ +J ss ' sr lr " st ls j ' lr GpR lr " lt GpR W W GpR diff --git a/tests/dc/rand_results.txt b/tests/dc/rand_results.txt new file mode 100644 index 000000000000..e8183f05f5db --- /dev/null +++ b/tests/dc/rand_results.txt @@ -0,0 +1,3 @@ +1 +1 +1 diff --git a/tests/dc/read.txt b/tests/dc/read.txt new file mode 100644 index 000000000000..9204d0a378e0 --- /dev/null +++ b/tests/dc/read.txt @@ -0,0 +1 @@ +3 4^pR diff --git a/tests/dc/read_errors.txt b/tests/dc/read_errors.txt new file mode 100644 index 000000000000..dd2f324e235d --- /dev/null +++ b/tests/dc/read_errors.txt @@ -0,0 +1,2 @@ + +? diff --git a/tests/dc/read_results.txt b/tests/dc/read_results.txt new file mode 100644 index 000000000000..d88e31369987 --- /dev/null +++ b/tests/dc/read_results.txt @@ -0,0 +1 @@ +81 diff --git a/tests/dc/scientific.txt b/tests/dc/scientific.txt new file mode 100644 index 000000000000..59a78dbb3a6c --- /dev/null +++ b/tests/dc/scientific.txt @@ -0,0 +1,51 @@ +0e0pR +0e1pR +0e5pR +0e_2pR +0e_100pR +1e0pR +_1e1pR +1e9pR +_1e21pR +1e_1pR +_1e_2pR +1e_5pR +4.92837e5pR +_3.28971028e20pR +6.2e3pR +_8.289371e2pR +5.9817280937e8pR +_3.28977e_1pR +8.8927891e_20pR +_7.98239e_4pR +4.4892e_4pR +_18937e0pR +198273e10pR +_18927e_4pR +28937e_5pR +_891072e_7pR +.28972e0pR +_.891273e_1pR +.8928397e1pR +_.0002983172e5pR +.00022e3pR +_.00022e4pR +.0000328937e8pR +0o +0pR +1pR +10pR +_289pR +2894pR +_89434pR +894370pR +_1239839pR +28931708pR +_8052098.8029731809pR +.1pR +_.01pR +.001pR +_.00038pR +.0000483pR +_.0002894378190pR +.2893712083pR diff --git a/tests/dc/scientific_results.txt b/tests/dc/scientific_results.txt new file mode 100644 index 000000000000..557fcf61fe5e --- /dev/null +++ b/tests/dc/scientific_results.txt @@ -0,0 +1,50 @@ +0 +0 +0 +0 +0 +1 +-10 +1000000000 +-1000000000000000000000 +.1 +-.01 +.00001 +492837 +-328971028000000000000 +6200 +-828.9371 +598172809.37 +-.328977 +.000000000000000000088927891 +-.000798239 +.00044892 +-18937 +1982730000000000 +-1.8927 +.28937 +-.0891072 +.28972 +-.0891273 +8.928397 +-29.83172 +.22 +-2.2 +3289.37 +0 +1e0 +1.0e1 +-2.89e2 +2.894e3 +-8.9434e4 +8.94370e5 +-1.239839e6 +2.8931708e7 +-8.0520988029731809e6 +1e-1 +-1e-2 +1e-3 +-3.8e-4 +4.83e-5 +-2.894378190e-4 +2.893712083e-1 diff --git a/tests/dc/scripts/array.dc b/tests/dc/scripts/array.dc new file mode 100755 index 000000000000..5accb118eb69 --- /dev/null +++ b/tests/dc/scripts/array.dc @@ -0,0 +1,3 @@ +#! /usr/bin/dc +0si[lid:rli1+sili100>x]dsxxli1-si[li;rpRli1-sili0!>x]dsxxli1+si[li;rpRli1+sili100>x]dsxx +0 0:a 1 1:a 2 2:a 0;a 1;a 2;a |pR diff --git a/tests/dc/scripts/array.txt b/tests/dc/scripts/array.txt new file mode 100644 index 000000000000..a0a2fd6f9d30 --- /dev/null +++ b/tests/dc/scripts/array.txt @@ -0,0 +1,201 @@ +99 +98 +97 +96 +95 +94 +93 +92 +91 +90 +89 +88 +87 +86 +85 +84 +83 +82 +81 +80 +79 +78 +77 +76 +75 +74 +73 +72 +71 +70 +69 +68 +67 +66 +65 +64 +63 +62 +61 +60 +59 +58 +57 +56 +55 +54 +53 +52 +51 +50 +49 +48 +47 +46 +45 +44 +43 +42 +41 +40 +39 +38 +37 +36 +35 +34 +33 +32 +31 +30 +29 +28 +27 +26 +25 +24 +23 +22 +21 +20 +19 +18 +17 +16 +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +0 diff --git a/tests/dc/scripts/asciify.dc b/tests/dc/scripts/asciify.dc new file mode 100755 index 000000000000..7db61210c831 --- /dev/null +++ b/tests/dc/scripts/asciify.dc @@ -0,0 +1,7 @@ +#! /usr/bin/dc +# To compare: +# cmp -l .log_dc.txt .log_dc_test.txt | gawk '{printf "%08X %02X %02X\n", $1, strtonum(0$2), strtonum(0$3)}' +_48apR +20k +1 1%aR +0si[liapRlid1+sili65536>x]ddsxapRx diff --git a/tests/dc/scripts/asciify.txt b/tests/dc/scripts/asciify.txt Binary files differnew file mode 100644 index 000000000000..a6af215aa0ea --- /dev/null +++ b/tests/dc/scripts/asciify.txt diff --git a/tests/dc/scripts/else.dc b/tests/dc/scripts/else.dc new file mode 100755 index 000000000000..84deb8754e9f --- /dev/null +++ b/tests/dc/scripts/else.dc @@ -0,0 +1,4 @@ +#! /usr/bin/dc +[[Done!]pR]sM[lip1-si0li>LeM]sL10silLx +[[Done!]pR]sM[lip1-si0li!<LeM]sL10silLx +[[Done!]pR]sM[lip1-si0li!=LeM]sL10silLx diff --git a/tests/dc/scripts/else.txt b/tests/dc/scripts/else.txt new file mode 100644 index 000000000000..e5c082bd5ac9 --- /dev/null +++ b/tests/dc/scripts/else.txt @@ -0,0 +1,34 @@ +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +Done! +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +Done! +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +Done! diff --git a/tests/dc/scripts/factorial.dc b/tests/dc/scripts/factorial.dc new file mode 100755 index 000000000000..6a751bf61352 --- /dev/null +++ b/tests/dc/scripts/factorial.dc @@ -0,0 +1,4 @@ +#! /usr/bin/dc +[lb1+dsb*plb50>x]sx +0sb1 +lxx diff --git a/tests/dc/scripts/factorial.txt b/tests/dc/scripts/factorial.txt new file mode 100644 index 000000000000..0bd3a30f1556 --- /dev/null +++ b/tests/dc/scripts/factorial.txt @@ -0,0 +1,50 @@ +1 +2 +6 +24 +120 +720 +5040 +40320 +362880 +3628800 +39916800 +479001600 +6227020800 +87178291200 +1307674368000 +20922789888000 +355687428096000 +6402373705728000 +121645100408832000 +2432902008176640000 +51090942171709440000 +1124000727777607680000 +25852016738884976640000 +620448401733239439360000 +15511210043330985984000000 +403291461126605635584000000 +10888869450418352160768000000 +304888344611713860501504000000 +8841761993739701954543616000000 +265252859812191058636308480000000 +8222838654177922817725562880000000 +263130836933693530167218012160000000 +8683317618811886495518194401280000000 +295232799039604140847618609643520000000 +10333147966386144929666651337523200000000 +371993326789901217467999448150835200000000 +13763753091226345046315979581580902400000000 +523022617466601111760007224100074291200000000 +20397882081197443358640281739902897356800000000 +815915283247897734345611269596115894272000000000 +33452526613163807108170062053440751665152000000000 +1405006117752879898543142606244511569936384000000000 +60415263063373835637355132068513997507264512000000000 +2658271574788448768043625811014615890319638528000000000 +119622220865480194561963161495657715064383733760000000000 +5502622159812088949850305428800254892961651752960000000000 +258623241511168180642964355153611979969197632389120000000000 +12413915592536072670862289047373375038521486354677760000000000 +608281864034267560872252163321295376887552831379210240000000000 +30414093201713378043612608166064768844377641568960512000000000000 diff --git a/tests/dc/scripts/loop.dc b/tests/dc/scripts/loop.dc new file mode 100755 index 000000000000..26cec23818df --- /dev/null +++ b/tests/dc/scripts/loop.dc @@ -0,0 +1,3 @@ +#! /usr/bin/dc +[lip1-si0li>L]sL10silLx +[lip1+si10li<L]sL0silLx diff --git a/tests/dc/scripts/loop.txt b/tests/dc/scripts/loop.txt new file mode 100644 index 000000000000..4029c2f0c126 --- /dev/null +++ b/tests/dc/scripts/loop.txt @@ -0,0 +1,20 @@ +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 diff --git a/tests/dc/scripts/prime.dc b/tests/dc/scripts/prime.dc new file mode 100755 index 000000000000..cc769d2bbee1 --- /dev/null +++ b/tests/dc/scripts/prime.dc @@ -0,0 +1 @@ +0k2p3p[dl!d2+s!%0=@l!l^!<#]s#[s/0ds^]s@[p]s&[ddvs^3s!l# x0<&2+d100000>.]ds.x diff --git a/tests/dc/scripts/quit.dc b/tests/dc/scripts/quit.dc new file mode 100755 index 000000000000..81e6289af25b --- /dev/null +++ b/tests/dc/scripts/quit.dc @@ -0,0 +1,2 @@ +1se [li p 1+si le li !=lem]sl [lk p 1+sk le lk !=o]so [0sk lox leQ 0sk lox le 3*1+Q 0sk lox]sm [0si llx le 1+se 10 le !=n]dsnx +1si [li p 1+si 10 li !=set]ss [1000Q]st lsx diff --git a/tests/dc/scripts/quit.txt b/tests/dc/scripts/quit.txt new file mode 100644 index 000000000000..a2b5201ddc05 --- /dev/null +++ b/tests/dc/scripts/quit.txt @@ -0,0 +1,99 @@ +0 +0 +0 +1 +0 +1 +0 +1 +2 +0 +1 +2 +0 +1 +2 +3 +0 +1 +2 +3 +0 +1 +2 +3 +4 +0 +1 +2 +3 +4 +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 +6 +0 +1 +2 +3 +4 +5 +6 +0 +1 +2 +3 +4 +5 +6 +7 +0 +1 +2 +3 +4 +5 +6 +7 +0 +1 +2 +3 +4 +5 +6 +7 +8 +0 +1 +2 +3 +4 +5 +6 +7 +8 +1 +2 +3 +4 +5 +6 +7 +8 +9 diff --git a/tests/dc/scripts/stream.dc b/tests/dc/scripts/stream.dc new file mode 100755 index 000000000000..6efcfa3820b5 --- /dev/null +++ b/tests/dc/scripts/stream.dc @@ -0,0 +1 @@ +0si[liPlid1+sili65536>x]ddsxPx diff --git a/tests/dc/scripts/weird.dc b/tests/dc/scripts/weird.dc new file mode 100755 index 000000000000..391ec05d6282 --- /dev/null +++ b/tests/dc/scripts/weird.dc @@ -0,0 +1,2 @@ +#! /usr/bin/dc +zp198202389.289374pzp[He World!]SzpzXfrfxzpfR diff --git a/tests/dc/scripts/weird.txt b/tests/dc/scripts/weird.txt new file mode 100644 index 000000000000..d921544766af --- /dev/null +++ b/tests/dc/scripts/weird.txt @@ -0,0 +1,18 @@ +0 +198202389.289374 +2 +2 +0 +2 +198202389.289374 +0 +2 +0 +198202389.289374 +0 +4 +4 +2 +0 +198202389.289374 +0 diff --git a/tests/dc/shift.txt b/tests/dc/shift.txt new file mode 100644 index 000000000000..628b0a5bf6fe --- /dev/null +++ b/tests/dc/shift.txt @@ -0,0 +1,42 @@ +0 0HpR +1 0HpR +2 0HpR +0.0023896 0HpR +1.298346 0HpR +2.00000000 0HpR +0.0023896 3HpR +1.298346 4HpR +2.00000000 5HpR +89136.892348976 7HpR +1892634051829351283289298 24HpR +0 0hpR +1 0hpR +2 0hpR +0.0023896 0hpR +1.298346 0hpR +2.00000000 0hpR +0.0023896 3hpR +1.298346 4hpR +2.00000000 5hpR +89136.892348976 7hpR +1892634051829351283289298 24hpR +_1 0HpR +_2 0HpR +_0.0023896 0HpR +_1.298346 0HpR +_2.00000000 0HpR +_0.0023896 3HpR +_1.298346 4HpR +_2.00000000 5HpR +_89136.892348976 7HpR +_1892634051829351283289298 24HpR +_1 0hpR +_2 0hpR +_0.0023896 0hpR +_1.298346 0hpR +_2.00000000 0hpR +_0.0023896 3hpR +_1.298346 4hpR +_2.00000000 5hpR +_89136.892348976 7hpR +_1892634051829351283289298 24hpR diff --git a/tests/dc/shift_results.txt b/tests/dc/shift_results.txt new file mode 100644 index 000000000000..f92831f8f5cf --- /dev/null +++ b/tests/dc/shift_results.txt @@ -0,0 +1,42 @@ +0 +1 +2 +.0023896 +1.298346 +2.00000000 +2.3896 +12983.46 +200000.000 +891368923489.76 +1892634051829351283289298000000000000000000000000 +0 +1 +2 +.0023896 +1.298346 +2.00000000 +.0000023896 +.0001298346 +.0000200000000 +.0089136892348976 +1.892634051829351283289298 +-1 +-2 +-.0023896 +-1.298346 +-2.00000000 +-2.3896 +-12983.46 +-200000.000 +-891368923489.76 +-1892634051829351283289298000000000000000000000000 +-1 +-2 +-.0023896 +-1.298346 +-2.00000000 +-.0000023896 +-.0001298346 +-.0000200000000 +-.0089136892348976 +-1.892634051829351283289298 diff --git a/tests/dc/sqrt.txt b/tests/dc/sqrt.txt new file mode 100644 index 000000000000..7c13fdd0bb5d --- /dev/null +++ b/tests/dc/sqrt.txt @@ -0,0 +1,14 @@ +20k +0vpR +2vpR +4vpR +9vpR +16vpR +25vpR +121vpR +48765vpR +9287356207356vpR +0.189274385967238956872354vpR +12389467137496823.134567829387456283946vpR +.0000000000000000000000000000123vpR +1vpR diff --git a/tests/dc/sqrt_results.txt b/tests/dc/sqrt_results.txt new file mode 100644 index 000000000000..5ded8c294eec --- /dev/null +++ b/tests/dc/sqrt_results.txt @@ -0,0 +1,13 @@ +0 +1.41421356237309504880 +2.00000000000000000000 +3.00000000000000000000 +4.00000000000000000000 +5.00000000000000000000 +11.00000000000000000000 +220.82798735667542192643 +3047516.39985021245496456781 +.435056761776252544285578 +111307983.260397019622398608908 +.0000000000000035071355833500363 +1.00000000000000000000 diff --git a/tests/dc/stdin.txt b/tests/dc/stdin.txt new file mode 100644 index 000000000000..e7a575207f69 --- /dev/null +++ b/tests/dc/stdin.txt @@ -0,0 +1,3 @@ +0si[lid:rli1+sili10>x]dsxxli1-si[li;rpRli1-sili0!>x]dsxxli1+si[li;rpRli1+sili10>x]dsxx0sx0si +1 2+p +[foo] diff --git a/tests/dc/stdin_results.txt b/tests/dc/stdin_results.txt new file mode 100644 index 000000000000..52f23dbb4a90 --- /dev/null +++ b/tests/dc/stdin_results.txt @@ -0,0 +1,21 @@ +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +3 diff --git a/tests/dc/strings.txt b/tests/dc/strings.txt new file mode 100644 index 000000000000..369d8e1dd842 --- /dev/null +++ b/tests/dc/strings.txt @@ -0,0 +1,50 @@ +[Hello, World!]ZpR +[Hello, World!]pR +[Hello, \[ World!]ZpR +[Hello, \[ World!]pR +[Hello, \] World!]ZpR +[Hello, \] World!]pR +[30pR] +[29pR] +[28pR] +[27pR] +[26pR] +[25pR] +[24pR] +[23pR] +[22pR] +[21pR] +[20pR] +[19pR] +[18pR] +[17pR] +[16pR] +[15pR] +[14pR] +[13pR] +[12pR] +[11pR] +[10pR] +[9pR] +[8pR] +[7pR] +[6pR] +[5pR] +[4pR] +[3pR] +[2pR] +[1pR] +[xz0<x]dsxx +[\\]pR +[\[\]]pR +1xpR +[1st] 0:b [2nd] 1:b 0;b p 1;b p +[string]XpR +[3 4^pR]silix +[[[q 1 3+pR]x]x]x4 5^pR +4xpR +5 112ax 90ax 112ax 82ax +[\q] pR +[q\\] pR +[\\] pR +92 a pR diff --git a/tests/dc/strings_results.txt b/tests/dc/strings_results.txt new file mode 100644 index 000000000000..509b105d51f3 --- /dev/null +++ b/tests/dc/strings_results.txt @@ -0,0 +1,51 @@ +13 +Hello, World! +15 +Hello, [ World! +15 +Hello, ] World! +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +\ +[] +1 +1st +2nd +0 +81 +1024 +4 +5 +1 +q +q\ +\ +\ diff --git a/tests/dc/subtract.txt b/tests/dc/subtract.txt new file mode 100644 index 000000000000..2cb4104fb717 --- /dev/null +++ b/tests/dc/subtract.txt @@ -0,0 +1,33 @@ +0 0-pR +0 1-pR +1 0-pR +1 1-pR +5 2-pR +2 9-pR +321974 12845976238457-pR +2874519803456710938465 384723854-pR +10000000000000000000000000000000000000000 999999999999999999999999999999999999999-pR +10000000000000000000000000000000000000000 9999999999999999999999999999999999999999-pR +10000000000000000000000000000000000000000 999999999999999999999999999999999999999.99999999999999999999999999999999999-pR +10000000000000000000000000000000000000000 9999999999999999999999999999999999999999.9999999999999999999999999999999999-pR +10000000000000000000000000000000000000000 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001-pR +10000000000000000000000000000000000000001 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001-pR +10000000000000000000000000000000000000000.0000000001 0.0000000000000000000000000000000000000000000000000000000000000000000000000001-pR +_2 6-pR +_23784692345 182934721309467230894628735496027345-pR +_224352354962873059862 _1245723576829456278354960278345-pR +_3468273598 _12354243-pR +_0.92345768293 _2354768923-pR +_712384634.123476823 _24768293376-pR +_1879234638 _0.917234869234-pR +_0.9172438692134 _0.971284967124-pR +_0.1283475123465 _0.937462346-pR +_124765829346.2837468293562 _0.923467829346-pR +_12476829385769 _1928476259034.8378629356-pR +_0.38476284395876345 _94875394587623.2357869324857-pR +_4674596708467.34754789403674343567 _48672394852354698.237548629345-pR +979519669 3018100865-pR +929002449 3280677283-pR +0 _525898-pR +3 _3-pR +2 _1 2893714 _2189367411289 _.8921374 3.9201384----pR diff --git a/tests/dc/subtract_results.txt b/tests/dc/subtract_results.txt new file mode 100644 index 000000000000..9f772625422e --- /dev/null +++ b/tests/dc/subtract_results.txt @@ -0,0 +1,37 @@ +0 +-1 +1 +0 +3 +-7 +-12845975916483 +2874519803456326214611 +9000000000000000000000000000000000000001 +1 +9000000000000000000000000000000000000000.000000000000000000000000000\ +00000001 +.0000000000000000000000000000000001 +9999999999999999999999999999999999999999.999999999999999999999999999\ +99999999999999999999999999999999999999999999999999999999999 +10000000000000000000000000000000000000000.99999999999999999999999999\ +999999999999999999999999999999999999999999999999999999999999 +10000000000000000000000000000000000000000.00000000009999999999999999\ +99999999999999999999999999999999999999999999999999 +-8 +-182934721309467230894628759280719690 +1245723576605103923392087218483 +-3455919355 +2354768922.07654231707 +24055908741.876523177 +-1879234637.082765130766 +.0540410979106 +.8091148336535 +-124765829345.3602790000102 +-10548353126734.1621370644 +94875394587622.85102408852693655 +48667720255646230.89000073530825656433 +-2038581196 +-2351674834 +525898 +6 +-2189370304999.1877242 diff --git a/tests/dc/trunc.txt b/tests/dc/trunc.txt new file mode 100644 index 000000000000..684752e065dd --- /dev/null +++ b/tests/dc/trunc.txt @@ -0,0 +1,11 @@ +0$pR +1$pR +2$pR +0.8249167203486$pR +1.28937150237$pR +2.0$pR +28937.92837605126$pR +2890.000000000$pR +_1$pR +_1.128973$pR +_9812387.28910273$pR diff --git a/tests/dc/trunc_results.txt b/tests/dc/trunc_results.txt new file mode 100644 index 000000000000..c680604170d7 --- /dev/null +++ b/tests/dc/trunc_results.txt @@ -0,0 +1,11 @@ +0 +1 +2 +0 +1 +2 +28937 +2890 +-1 +-1 +-9812387 diff --git a/tests/dc/vars.txt b/tests/dc/vars.txt new file mode 100644 index 000000000000..bbe73b47d81f --- /dev/null +++ b/tests/dc/vars.txt @@ -0,0 +1,2 @@ +298734.8921702348sx_928374892.28937syzpRlxly+pR +298734.8921702348S xotj _928374892.28937S yotp zpRl xotj l yotp-pRzpR L xotj L yotp-pR diff --git a/tests/dc/vars_results.txt b/tests/dc/vars_results.txt new file mode 100644 index 000000000000..6f18e7a84b2b --- /dev/null +++ b/tests/dc/vars_results.txt @@ -0,0 +1,6 @@ +0 +-928076157.3971997652 +0 +928673627.1815402348 +0 +928673627.1815402348 diff --git a/tests/errors.sh b/tests/errors.sh new file mode 100755 index 000000000000..dd38b5d28c6b --- /dev/null +++ b/tests/errors.sh @@ -0,0 +1,132 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# WARNING: Test files cannot have empty lines! + +script="$0" +testdir=$(dirname "$script") + +. "$testdir/../functions.sh" + +if [ "$#" -eq 0 ]; then + printf 'usage: %s dir [exec args...]\n' "$script" + exit 1 +else + d="$1" + shift +fi + +if [ "$#" -lt 1 ]; then + exe="$testdir/../bin/$d" +else + exe="$1" + shift +fi + +out="$testdir/../.log_${d}_test.txt" + +exebase=$(basename "$exe") + +posix="posix_errors" +read_errors="read_errors" + +if [ "$d" = "bc" ]; then + opts="-l" + halt="halt" + read_call="read()" + read_expr="${read_call}\n5+5;" +else + opts="-x" + halt="q" +fi + +for testfile in $testdir/$d/*errors.txt; do + + if [ -z "${testfile##*$read_errors*}" ]; then + # We don't test read errors here. Skip. + continue + fi + + if [ -z "${testfile##*$posix*}" ]; then + + line="last" + printf '%s\n' "$line" | "$exe" "$@" "-lw" 2> "$out" > /dev/null + err="$?" + + if [ "$err" -ne 0 ]; then + die "$d" "returned an error ($err)" "POSIX warning" 1 + fi + + checktest "$d" "1" "$line" "$out" "$exebase" + + options="-ls" + else + options="$opts" + fi + + base=$(basename "$testfile") + base="${base%.*}" + printf 'Running %s %s...' "$d" "$base" + + while read -r line; do + + rm -f "$out" + + printf '%s\n' "$line" | "$exe" "$@" "$options" 2> "$out" > /dev/null + err="$?" + + checktest "$d" "$err" "$line" "$out" "$exebase" + + done < "$testfile" + + printf 'pass\n' + +done + +for testfile in $testdir/$d/errors/*.txt; do + + printf 'Running %s error file %s...' "$d" "$testfile" + + printf '%s\n' "$halt" | "$exe" "$@" $opts "$testfile" 2> "$out" > /dev/null + err="$?" + + checktest "$d" "$err" "$testfile" "$out" "$exebase" + + printf 'pass\n' + + printf 'Running %s error file %s through cat...' "$d" "$testfile" + + cat "$testfile" | "$exe" "$@" $opts 2> "$out" > /dev/null + err="$?" + + checkcrash "$d" "$err" "$testfile" + + printf 'pass\n' + +done diff --git a/tests/radamsa.sh b/tests/radamsa.sh new file mode 100755 index 000000000000..3d7c763c5827 --- /dev/null +++ b/tests/radamsa.sh @@ -0,0 +1,120 @@ +#! /bin/bash +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +getentry() { + + if [ $# -gt 0 ]; then + entnum="$1" + else + entnum=0 + fi + + e=$(cat -) + num=$(printf '%s\n' "$e" | wc -l) + + if [ "$entnum" -eq 0 ]; then + rand=$(printf 'irand(%s) + 1\n' "$num" | "$bcdir/bc") + else + rand="$entnum" + fi + + ent=$(printf '%s\n' "$e" | tail -n +$rand | head -n 1) + + printf '%s\n' "$ent" +} + +script="$0" + +if [ "$#" -lt 1 ]; then + printf 'usage: %s dir\n' "$0" + exit 1 +fi + +d="$1" +shift + +dir=$(dirname "$script") + +. "$dir/../functions.sh" + +bcdir="$dir/../bin" + +if [ "$d" = "bc" ]; then + inputs="$dir/../../inputs" + opts="-lq" +elif [ "$d" = "dc" ]; then + inputs="$dir/../../inputs_dc" + opts="-x" +else + err_exit "wrong type of executable" 1 +fi + +export ASAN_OPTIONS="abort_on_error=1" + +entries=$(cat "$dir/radamsa.txt") + +IFS=$'\n' + +go=1 + +while [ "$go" -ne 0 ]; do + + if [ "$d" = "bc" ]; then + + entry=$(cat -- "$dir/radamsa.txt" | getentry) + items=$(printf '%s\n' "$entry" | radamsa -n 10) + + printf '%s\n' "$items" + + for i in `seq 1 10`; do + + item=$(printf '%s\n' "$items" | getentry "$i") + + export BC_ENV_ARGS="$item" + echo 'halt' | "$bcdir/$d" + err=$? + + checkcrash "$d" "$err" "radamsa env args: \"$item\"" + done + + fi + + f=$(ls "$inputs" | getentry) + l=$(cat "$inputs/$f" | wc -l) + ll=$(printf '%s^2\n' "$l" | bc) + + for i in $(seq 1 2); do + data=$(cat "$inputs/$f" | radamsa -n 1) + printf '%s\n' "$data" > "$dir/../.log_${d}_test.txt" + printf '%s\n' "$data" | timeout -s SIGTERM 5 "$bcdir/$d" "$opts" > /dev/null + err=$? + checkcrash "$d" "$err" "radamsa stdin" + done + +done diff --git a/tests/radamsa.txt b/tests/radamsa.txt new file mode 100644 index 000000000000..4bf28907bead --- /dev/null +++ b/tests/radamsa.txt @@ -0,0 +1,17 @@ +-lq '/home/gavin/.bcrc' +-lq "/home/gavin/.bcrc" +-lqg '/home/gavin/bc stuff.bc' +-lqg "/home/gavin/bc stuff.bc" +-lqg '/home/gavin/"bc" stuff.bc' +-lqg "/home/gavin/'bc' stuff.bc" +-lqg '/home/gavin/bc stuff.bc +-lqg "/home/gavin/bc stuff.bc +-lqg '/home/gavin/"bc" stuff.bc +-lqg "/home/gavin/'bc' stuff.bc +--mathlib --expand +--file="/home/gavin/.bcrc" +--file=/home/gavin/.bcrc +--file="/home/gavin/bc stuff.bc" +--file +--expression "4+4" +-e "irand(128)" -f /home/gavin/.bcrc diff --git a/tests/randmath.py b/tests/randmath.py new file mode 100755 index 000000000000..f350ef357f6b --- /dev/null +++ b/tests/randmath.py @@ -0,0 +1,306 @@ +#! /usr/bin/python3 -B +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +import os, errno +import random +import sys +import subprocess + +def gen(limit=4): + return random.randint(0, 2 ** (8 * limit)) + +def negative(): + return random.randint(0, 1) == 1 + +def zero(): + return random.randint(0, 2 ** (8) - 1) == 0 + +def num(op, neg, real, z, limit=4): + + if z: + z = zero() + else: + z = False + + if z: + return 0 + + if neg: + neg = negative() + + g = gen(limit) + + if real and negative(): + n = str(gen(25)) + length = gen(7 / 8) + if len(n) < length: + n = ("0" * (length - len(n))) + n + else: + n = "0" + + g = str(g) + if n != "0": + g = g + "." + n + + if neg and g != "0": + if op != modexp: + g = "-" + g + else: + g = "_" + g + + return g + + +def add(test, op): + + tests.append(test) + gen_ops.append(op) + +def compare(exe, options, p, test, halt, expected, op, do_add=True): + + if p.returncode != 0: + + print(" {} returned an error ({})".format(exe, p.returncode)) + + if do_add: + print(" adding to checklist...") + add(test, op) + + return + + actual = p.stdout.decode() + + if actual != expected: + + if op >= exponent: + + indata = "scale += 10; {}; {}".format(test, halt) + args = [ exe, options ] + p2 = subprocess.run(args, input=indata.encode(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + expected = p2.stdout[:-10].decode() + + if actual == expected: + print(" failed because of bug in other {}".format(exe)) + print(" continuing...") + return + + if do_add: + print(" failed; adding to checklist...") + add(test, op) + else: + print(" failed {}".format(test)) + print(" expected:") + print(" {}".format(expected)) + print(" actual:") + print(" {}".format(actual)) + + +def gen_test(op): + + scale = num(op, False, False, True, 5 / 8) + + if op < div: + s = fmts[op].format(scale, num(op, True, True, True), num(op, True, True, True)) + elif op == div or op == mod: + s = fmts[op].format(scale, num(op, True, True, True), num(op, True, True, False)) + elif op == power: + s = fmts[op].format(scale, num(op, True, True, True, 7 / 8), num(op, True, False, True, 6 / 8)) + elif op == modexp: + s = fmts[op].format(scale, num(op, True, False, True), num(op, True, False, True), + num(op, True, False, False)) + elif op == sqrt: + s = "1" + while s == "1": + s = num(op, False, True, True, 1) + s = fmts[op].format(scale, s) + else: + + if op == exponent: + first = num(op, True, True, True, 6 / 8) + elif op == bessel: + first = num(op, False, True, True, 6 / 8) + else: + first = num(op, True, True, True) + + if op != bessel: + s = fmts[op].format(scale, first) + else: + s = fmts[op].format(scale, first, 6 / 8) + + return s + +def run_test(t): + + op = random.randrange(bessel + 1) + + if op != modexp: + exe = "bc" + halt = "halt" + options = "-lq" + else: + exe = "dc" + halt = "q" + options = "" + + test = gen_test(op) + + if "c(0)" in test or "scale = 4; j(4" in test: + return + + bcexe = exedir + "/" + exe + indata = test + "\n" + halt + + print("Test {}: {}".format(t, test)) + + if exe == "bc": + args = [ exe, options ] + else: + args = [ exe ] + + p = subprocess.run(args, input=indata.encode(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + output1 = p.stdout.decode() + + if p.returncode != 0 or output1 == "": + print(" other {} returned an error ({}); continuing...".format(exe, p.returncode)) + return + + if output1 == "\n": + print(" other {} has a bug; continuing...".format(exe)) + return + + if output1 == "-0\n": + output1 = "0\n" + elif output1 == "-0": + output1 = "0" + + args = [ bcexe, options ] + + p = subprocess.run(args, input=indata.encode(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + compare(exe, options, p, test, halt, output1, op) + + +if __name__ != "__main__": + sys.exit(1) + +script = sys.argv[0] +testdir = os.path.dirname(script) + +exedir = testdir + "/../bin" + +ops = [ '+', '-', '*', '/', '%', '^', '|' ] +files = [ "add", "subtract", "multiply", "divide", "modulus", "power", "modexp", + "sqrt", "exponent", "log", "arctangent", "sine", "cosine", "bessel" ] +funcs = [ "sqrt", "e", "l", "a", "s", "c", "j" ] + +fmts = [ "scale = {}; {} + {}", "scale = {}; {} - {}", "scale = {}; {} * {}", + "scale = {}; {} / {}", "scale = {}; {} % {}", "scale = {}; {} ^ {}", + "{}k {} {} {}|pR", "scale = {}; sqrt({})", "scale = {}; e({})", + "scale = {}; l({})", "scale = {}; a({})", "scale = {}; s({})", + "scale = {}; c({})", "scale = {}; j({}, {})" ] + +div = 3 +mod = 4 +power = 5 +modexp = 6 +sqrt = 7 +exponent = 8 +bessel = 13 + +gen_ops = [] +tests = [] + +try: + i = 0 + while True: + run_test(i) + i = i + 1 +except KeyboardInterrupt: + pass + +if len(tests) == 0: + print("\nNo items in checklist.") + print("Exiting") + sys.exit(0) + +print("\nGoing through the checklist...\n") + +if len(tests) != len(gen_ops): + print("Corrupted checklist!") + print("Exiting...") + sys.exit(1) + +for i in range(0, len(tests)): + + print("\n{}".format(tests[i])) + + op = int(gen_ops[i]) + + if op != modexp: + exe = "bc" + halt = "halt" + options = "-lq" + else: + exe = "dc" + halt = "q" + options = "" + + indata = tests[i] + "\n" + halt + + args = [ exe, options ] + + p = subprocess.run(args, input=indata.encode(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + expected = p.stdout.decode() + + bcexe = exedir + "/" + exe + args = [ bcexe, options ] + + p = subprocess.run(args, input=indata.encode(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + compare(exe, options, p, tests[i], halt, expected, op, False) + + answer = input("\nAdd test ({}/{}) to test suite? [y/N]: ".format(i + 1, len(tests))) + + if 'Y' in answer or 'y' in answer: + + print("Yes") + + name = testdir + "/" + exe + "/" + files[op] + + with open(name + ".txt", "a") as f: + f.write(tests[i] + "\n") + + with open(name + "_results.txt", "a") as f: + f.write(expected) + + else: + print("No") + +print("Done!") diff --git a/tests/read.sh b/tests/read.sh new file mode 100755 index 000000000000..635291221465 --- /dev/null +++ b/tests/read.sh @@ -0,0 +1,126 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +set -e + +script="$0" +testdir=$(dirname "$script") + +. "$testdir/../functions.sh" + +if [ "$#" -lt 1 ]; then + printf 'usage: %s dir [exe [args...]]\n' "$0" + printf 'valid dirs are:\n' + printf '\n' + cat "$testdir/all.txt" + printf '\n' + exit 1 +fi + +d="$1" +shift + +if [ "$#" -gt 0 ]; then + exe="$1" + shift +else + exe="$testdir/../bin/$d" +fi + +name="$testdir/$d/read.txt" +results="$testdir/$d/read_results.txt" +errors="$testdir/$d/read_errors.txt" + +out="$testdir/../.log_${d}_test.txt" + +exebase=$(basename "$exe") + +if [ "$d" = "bc" ]; then + options="-lq" + halt="halt" +else + options="-x" + halt="q" +fi + +if [ "$d" = "bc" ]; then + read_call="read()" + read_expr="${read_call}\n5+5;" +else + read_call="?" + read_expr="${read_call}" +fi + +printf 'Running %s read...' "$d" + +while read line; do + + printf '%s\n%s\n' "$read_call" "$line" | "$exe" "$@" "$options" > "$out" + diff "$results" "$out" + +done < "$name" + +printf 'pass\n' + +set +e + +printf 'Running %s read errors...' "$d" + +while read line; do + + printf '%s\n%s\n' "$read_call" "$line" | "$exe" "$@" "$options" 2> "$out" > /dev/null + err="$?" + + checktest "$d" "$err" "$line" "$out" "$exebase" + +done < "$errors" + +printf 'pass\n' + +printf 'Running %s empty read...' "$d" + +read_test=$(printf '%s\n' "$read_call") + +printf '%s\n' "$read_test" | "$exe" "$@" "$opts" 2> "$out" > /dev/null +err="$?" + +checktest "$d" "$err" "$read_test" "$out" "$exebase" + +printf 'pass\n' + +printf 'Running %s read EOF...' "$d" + +read_test=$(printf '%s' "$read_call") + +printf '%s' "$read_test" | "$exe" "$@" "$opts" 2> "$out" > /dev/null +err="$?" + +checktest "$d" "$err" "$read_test" "$out" "$exebase" + +printf 'pass\n' diff --git a/tests/script.sh b/tests/script.sh new file mode 100755 index 000000000000..4d1b2354f42c --- /dev/null +++ b/tests/script.sh @@ -0,0 +1,155 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +set -e + +script="$0" + +testdir=$(dirname "${script}") + +if [ "$#" -lt 2 ]; then + printf 'usage: %s dir script [run_extra_tests] [run_stack_tests] [generate_tests] [time_tests] [exec args...]\n' "$script" + exit 1 +fi + +d="$1" +shift + +f="$1" +shift + +if [ "$#" -gt 0 ]; then + run_extra_tests="$1" + shift +else + run_extra_tests=1 +fi + +if [ "$#" -gt 0 ]; then + run_stack_tests="$1" + shift +else + run_stack_tests=1 +fi + +if [ "$#" -gt 0 ]; then + generate="$1" + shift +else + generate=1 +fi + +if [ "$#" -gt 0 ]; then + time_tests="$1" + shift +else + time_tests=0 +fi + +if [ "$#" -gt 0 ]; then + exe="$1" + shift +else + exe="$testdir/../bin/$d" +fi + +out="$testdir/../.log_${d}_test.txt" + +if [ "$d" = "bc" ]; then + + if [ "$run_stack_tests" -ne 0 ]; then + options="-lgq" + else + options="-lq" + fi + + halt="halt" + +else + options="-x" + halt="q" +fi + +scriptdir="$testdir/$d/scripts" + +name="${f%.*}" + +if [ "$f" = "timeconst.bc" ]; then + exit 0 +fi + +if [ "$run_extra_tests" -eq 0 ]; then + if [ "$f" = "rand.bc" ]; then + printf 'Skipping %s script: %s\n' "$d" "$f" + exit 0 + fi +fi + +if [ "$run_stack_tests" -eq 0 ]; then + + if [ "$f" = "globals.bc" -o "$f" = "references.bc" -o "$f" = "rand.bc" ]; then + printf 'Skipping %s script: %s\n' "$d" "$f" + exit 0 + fi + +fi + +s="$scriptdir/$f" +orig="$testdir/$name.txt" +results="$scriptdir/$name.txt" + +if [ -f "$orig" ]; then + res="$orig" +elif [ -f "$results" ]; then + res="$results" +elif [ "$generate" -eq 0 ]; then + printf 'Skipping %s script %s\n' "$d" "$s" + exit 0 +else + printf 'Generating %s results...' "$f" + printf '%s\n' "$halt" | "$d" "$s" > "$results" + printf 'done\n' + res="$results" +fi + +printf 'Running %s script %s...' "$d" "$f" + +if [ "$time_tests" -ne 0 ]; then + printf '\n' + printf '%s\n' "$halt" | /usr/bin/time -p "$exe" "$@" $options "$s" > "$out" + printf '\n' +else + printf '%s\n' "$halt" | "$exe" "$@" $options "$s" > "$out" +fi + +diff "$res" "$out" + +rm -f "$out" + +printf 'pass\n' diff --git a/tests/scripts.sh b/tests/scripts.sh new file mode 100755 index 000000000000..13932fc4db17 --- /dev/null +++ b/tests/scripts.sh @@ -0,0 +1,86 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +set -e + +script="$0" + +testdir=$(dirname "${script}") + +if [ "$#" -eq 0 ]; then + printf 'usage: %s dir [run_extra_tests] [run_stack_tests] [generate_tests] [time_tests] [exec args...]\n' "$script" + exit 1 +else + d="$1" + shift +fi + +if [ "$#" -gt 0 ]; then + run_extra_tests="$1" + shift +else + run_extra_tests=1 +fi + +if [ "$#" -gt 0 ]; then + run_stack_tests="$1" + shift +else + run_stack_tests=1 +fi + +if [ "$#" -gt 0 ]; then + generate="$1" + shift +else + generate=1 +fi + +if [ "$#" -gt 0 ]; then + time_tests="$1" + shift +else + time_tests=0 +fi + +if [ "$#" -gt 0 ]; then + exe="$1" + shift +else + exe="$testdir/../bin/$d" +fi + +scriptdir="$testdir/$d/scripts" + +for s in $scriptdir/*.$d; do + + f=$(basename "$s") + sh "$testdir/script.sh" "$d" "$f" "$run_extra_tests" "$run_stack_tests" "$generate" "$time_tests" "$exe" "$@" + +done diff --git a/tests/stdin.sh b/tests/stdin.sh new file mode 100755 index 000000000000..cfd45805face --- /dev/null +++ b/tests/stdin.sh @@ -0,0 +1,73 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +set -e + +script="$0" + +testdir=$(dirname "$script") + +if [ "$#" -lt 1 ]; then + printf 'usage: %s dir [exe [args...]]\n' "$0" + printf 'valid dirs are:\n' + printf '\n' + cat "$testdir/all.txt" + printf '\n' + exit 1 +fi + +d="$1" +shift + +if [ "$#" -gt 0 ]; then + exe="$1" + shift +else + exe="$testdir/../bin/$d" +fi + +out="$testdir/../.log_${d}_test.txt" + +if [ "$d" = "bc" ]; then + options="-ilq" +else + options="-x" +fi + +rm -f "$out" + +printf 'Running %s stdin tests...' "$d" + +cat "$testdir/$d/stdin.txt" | "$exe" "$@" "$options" > "$out" 2> /dev/null + +diff "$testdir/$d/stdin_results.txt" "$out" + +rm -f "$out1" + +printf 'pass\n' diff --git a/tests/test.sh b/tests/test.sh new file mode 100755 index 000000000000..a8e7ddeb9f63 --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,132 @@ +#! /bin/sh +# +# Copyright (c) 2018-2020 Gavin D. Howard and contributors. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +set -e + +script="$0" + +testdir=$(dirname "$script") + +if [ "$#" -lt 2 ]; then + printf 'usage: %s dir test [generate_tests] [time_tests] [exe [args...]]\n' "$0" + printf 'valid dirs are:\n' + printf '\n' + cat "$testdir/all.txt" + printf '\n' + exit 1 +fi + +d="$1" +shift + +t="$1" +name="$testdir/$d/$t.txt" +results="$testdir/$d/${t}_results.txt" +shift + +if [ "$#" -gt 0 ]; then + generate_tests="$1" + shift +else + generate_tests=1 +fi + +if [ "$#" -gt 0 ]; then + time_tests="$1" + shift +else + time_tests=0 +fi + +if [ "$#" -gt 0 ]; then + exe="$1" + shift +else + exe="$testdir/../bin/$d" +fi + +out="$testdir/../.log_${d}_test.txt" + +if [ "$d" = "bc" ]; then + options="-lq" + var="BC_LINE_LENGTH" + halt="halt" +else + options="" + var="DC_LINE_LENGTH" + halt="q" +fi + +if [ "${exe#*toybox}" != "$exe" -o "${exe#*busybox}" != "$exe" ]; then + if [ "$t" = "print2" -o "$t" = "misc4" ]; then + base=$(basename "$exe") + printf 'Skipping %s test for %s...\n' "$t" "$base" + exit 0 + fi +fi + +if [ ! -f "$name" ]; then + + if [ "$generate_tests" -eq 0 ]; then + printf 'Skipping %s %s test\n' "$d" "$t" + exit 0 + fi + + printf 'Generating %s %s...' "$d" "$t" + "$testdir/$d/scripts/$t.$d" > "$name" + printf 'done\n' +fi + +if [ ! -f "$results" ]; then + printf 'Generating %s %s results...' "$d" "$t" + printf '%s\n' "$halt" | "$d" $options "$name" > "$results" + printf 'done\n' +fi + +if [ "$d" = "dc" ]; then + options="-x" +fi + +export $var=string + +printf 'Running %s %s...' "$d" "$t" + +if [ "$time_tests" -ne 0 ]; then + printf '\n' + printf '%s\n' "$halt" | /usr/bin/time -p "$exe" "$@" $options "$name" > "$out" + printf '\n' +else + printf '%s\n' "$halt" | "$exe" "$@" $options "$name" > "$out" +fi + +diff "$results" "$out" + +rm -f "$out" + +printf 'pass\n' |