summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2009-11-24 21:49:06 -0500
committerTavian Barnes <tavianator@gmail.com>2009-11-24 21:49:06 -0500
commitf1b92556c2189b5b5dbd5d81d966f2d2a8e9b2ab (patch)
treef4addfcd09e728e64b74298e381e43e28ba58798
parenta3a951ce9e87af1036c97c99987812273f62224c (diff)
downloaddimension-f1b92556c2189b5b5dbd5d81d966f2d2a8e9b2ab.tar.xz
New arithmetic expression test.
-rw-r--r--tests/dimension/Makefile.am3
-rw-r--r--tests/dimension/arithexp.pov24
-rwxr-xr-xtests/dimension/arithexp.sh30
-rw-r--r--tests/dimension/demo.pov4
-rwxr-xr-xtests/dimension/demo.sh4
5 files changed, 60 insertions, 5 deletions
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 <tavianator@gmail.com> *
+ * *
+ * 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 <http://www.gnu.org/licenses/>. *
+ *************************************************************************/
+
+// 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 <tavianator@gmail.com> #
+# #
+# 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 <http://www.gnu.org/licenses/>. #
+#########################################################################
+
+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