From f1b92556c2189b5b5dbd5d81d966f2d2a8e9b2ab Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 24 Nov 2009 21:49:06 -0500 Subject: New arithmetic expression test. --- tests/dimension/Makefile.am | 3 ++- tests/dimension/arithexp.pov | 24 ++++++++++++++++++++++++ tests/dimension/arithexp.sh | 30 ++++++++++++++++++++++++++++++ tests/dimension/demo.pov | 4 ++-- tests/dimension/demo.sh | 4 ++-- 5 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 tests/dimension/arithexp.pov create mode 100755 tests/dimension/arithexp.sh (limited to 'tests') diff --git a/tests/dimension/Makefile.am b/tests/dimension/Makefile.am index d0824d1..61fded3 100644 --- a/tests/dimension/Makefile.am +++ b/tests/dimension/Makefile.am @@ -19,7 +19,7 @@ INCLUDES = -I$(top_srcdir)/libdimension -TESTS = punctuation.sh numeric.sh strings.sh labels.sh directives.sh demo.sh +TESTS = punctuation.sh numeric.sh strings.sh labels.sh directives.sh arithexp.sh demo.sh TESTS_ENVIRONMENT = top_builddir=$(top_builddir) .sh: @@ -31,6 +31,7 @@ EXTRA_DIST = $(TESTS) \ strings.pov \ labels.pov \ directives.pov \ + arithexp.pov \ demo.pov clean-local: diff --git a/tests/dimension/arithexp.pov b/tests/dimension/arithexp.pov new file mode 100644 index 0000000..5b458e7 --- /dev/null +++ b/tests/dimension/arithexp.pov @@ -0,0 +1,24 @@ +/************************************************************************* + * Copyright (C) 2009 Tavian Barnes * + * * + * This file is part of The Dimension Test Suite. * + * * + * The Dimension Test Suite is free software; you can redistribute it * + * and/or modify it under the terms of the GNU General Public License as * + * published by the Free Software Foundation; either version 3 of the * + * License, or (at your option) any later version. * + * * + * The Dimension Test Suite is distributed in the hope that it will be * + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *************************************************************************/ + +// Render demo scene + +sphere { + <1.0, (1.0 + 2)*2 - 5, 1.0 + 2*2 - 4> - -<0, 0, 1>, 2.25 - 1*2 +} diff --git a/tests/dimension/arithexp.sh b/tests/dimension/arithexp.sh new file mode 100755 index 0000000..4d89387 --- /dev/null +++ b/tests/dimension/arithexp.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +######################################################################### +# Copyright (C) 2009 Tavian Barnes # +# # +# This file is part of The Dimension Test Suite. # +# # +# The Dimension Test Suite is free software; you can redistribute it # +# and/or modify it under the terms of the GNU General Public License as # +# published by the Free Software Foundation; either version 3 of the # +# License, or (at your option) any later version. # +# # +# The Dimension Test Suite is distributed in the hope that it will be # +# useful, but WITHOUT ANY WARRANTY; without even the implied warranty # +# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # +# General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +######################################################################### + +arithexp=$(${top_builddir}/dimension/dimension --tokenize --parse ${srcdir}/arithexp.pov) +arithexp_exp='(sphere { < (float "1.0") , \( (float "1.0") + (integer "2") \) * (integer "2") - (integer "5") , (float "1.0") + (integer "2") * (integer "2") - (integer "4") > - - < (integer "0") , (integer "0") , (integer "1") > , (float "2.25") - (integer "1") * (integer "2") }) +((sphere (vector (float 0) (float 0) (float 0) (integer 0) (integer 0)) (float 0.25)))' + +if [ "$arithexp" != "$arithexp_exp" ]; then + echo "arithexp.pov parsed as \"$arithexp\"" >&2 + echo " -- expected \"$arithexp_exp\"" >&2 + exit 1 +fi diff --git a/tests/dimension/demo.pov b/tests/dimension/demo.pov index c37ef48..85607b8 100644 --- a/tests/dimension/demo.pov +++ b/tests/dimension/demo.pov @@ -20,9 +20,9 @@ // Render demo scene box { - <-2.0 + 1, -2/2.0, -1.0>, <1.0, (1.0 + 2)*2 - 5, 1.0 + 2*2 - 4> + <-1, -1, -1>, <1, 1, 1> } sphere { - <1/5 + -1/5, 1/5.0 - 1.0/5, -1> - -<0, 0, 1>, 1.25 + <0, 0, 0>, 1.25 } diff --git a/tests/dimension/demo.sh b/tests/dimension/demo.sh index 8119969..3ee9635 100755 --- a/tests/dimension/demo.sh +++ b/tests/dimension/demo.sh @@ -20,8 +20,8 @@ ######################################################################### demo=$(${top_builddir}/dimension/dimension --tokenize --parse ${srcdir}/demo.pov) -demo_exp='(box { < - (float "2.0") + (integer "1") , - (integer "2") / (float "2.0") , - (float "1.0") > , < (float "1.0") , \( (float "1.0") + (integer "2") \) * (integer "2") - (integer "5") , (float "1.0") + (integer "2") * (integer "2") - (integer "4") > } sphere { < (integer "1") / (integer "5") + - (integer "1") / (integer "5") , (integer "1") / (float "5.0") - (float "1.0") / (integer "5") , - (integer "1") > - - < (integer "0") , (integer "0") , (integer "1") > , (float "1.25") }) -((box (vector (float -1) (float -1) (float -1) (integer 0) (integer 0)) (vector (float 1) (float 1) (float 1) (integer 0) (integer 0))) (sphere (vector (float 0) (float 0) (integer 0) (integer 0) (integer 0)) (float 1.25)))' +demo_exp='(box { < - (integer "1") , - (integer "1") , - (integer "1") > , < (integer "1") , (integer "1") , (integer "1") > } sphere { < (integer "0") , (integer "0") , (integer "0") > , (float "1.25") }) +((box (vector (integer -1) (integer -1) (integer -1) (integer 0) (integer 0)) (vector (integer 1) (integer 1) (integer 1) (integer 0) (integer 0))) (sphere (vector (integer 0) (integer 0) (integer 0) (integer 0) (integer 0)) (float 1.25)))' if [ "$demo" != "$demo_exp" ]; then echo "demo.pov parsed as \"$demo\"" >&2 -- cgit v1.2.3