#!/bin/sh
# Copyright 2015 by Bernhard Reutner-Fischer
# Licensed under GPLv2 or later, see file LICENSE in this source tree.

. ./testing.sh

# testing "test name" "command" "expected result" "file input" "stdin"

testing "dc basic syntax (stdin, multiple args)" \
	"dc" \
	"30\n" \
	"" "10 20+p"

testing "dc basic syntax (argv, single arg)" \
	"dc -e'10 20+p'" \
	"30\n" \
	"" ""

testing "dc basic syntax (argv, multiple args)" \
	"dc -e10 -e20+p" \
	"30\n" \
	"" ""

testing "dc complex with spaces (single arg)" \
	"dc -e'8 8 * 2 2 + / p'" \
	"16\n" \
	"" ""

testing "dc complex without spaces (single arg)" \
	"dc -e'8 8*2 2+/p'" \
	"16\n" \
	"" ""

testing "dc complex with spaces (multiple args)" \
	"dc -e8 -e8 -e\* -e2 -e2 -e+ -e/ -ep" \
	"16\n" \
	"" ""

testing "dc complex without spaces (multiple args)" \
	"dc -e8 -e8\*2 -e2+/p" \
	"16\n" \
	"" ""

optional FEATURE_DC_BIG
# All tests below depend on FEATURE_DC_BIG

testing "dc read" \
	"dc -finput" \
	"2\n9\n1\n" \
	"1?2\nf" "9\n"

testing "dc read string" \
	"dc -finput" \
	"2\nstr\n1\n" \
	"1?2\nf" "[str]\n"

testing "dc '>a' (conditional execute string) 1" \
	"dc" \
	"1\n9\n" \
	"" "[1p]sa [2p]sb 1 2>a\n9p"

testing "dc '>a' (conditional execute string) 2" \
	"dc" \
	"9\n" \
	"" "[1p]sa [2p]sb 2 1>a\n9p"

testing "dc '>aeb' (conditional execute string with else)" \
	"dc" \
	"2\n9\n" \
	"" "[1p]sa [2p]sb 2 1>aeb\n9p"

testing "dc space can be a register" \
	"dc" \
	"2\n9\n" \
	"" "[2p]s \n[3p]\nl x\n9p"

testing "dc newline can be a register" \
	"dc" \
	"2\n9\n" \
	"" "[2p]s\n[3p]l\nx\n9p"

for f in dc_*.dc; do
	r="`basename "$f" .dc`_results.txt"
	test -f "$r" || continue
	# testing "test name" "command" "expected result" "file input" "stdin"
	testing "dc $f" \
		"{ { dc $f 2>&1; echo E:\$? >&2; } | diff -u - $r; echo E:\$?; } 2>&1" \
		"E:0\nE:0\n" \
		"" ""
done

for f in dcx_*.dc; do
	r="`basename "$f" .dc`_results.txt"
	test -f "$r" || continue
	# testing "test name" "command" "expected result" "file input" "stdin"
	testing "dc -x $f" \
		"{ { dc -x $f 2>&1; echo E:\$? >&2; } | diff -u - $r; echo E:\$?; } 2>&1" \
		"E:0\nE:0\n" \
		"" ""
done

exit $FAILCOUNT
