summaryrefslogtreecommitdiffstats
path: root/dimension/bench
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2011-05-15 15:54:56 -0600
committerTavian Barnes <tavianator@gmail.com>2011-05-15 15:58:05 -0600
commita5a6b94c038e01ebf1e2de0a0774a69b02fb8e1e (patch)
tree66a4b977fff9f0119456b6c5a3398d25976f6c53 /dimension/bench
parent130cbc32499ade9235873bc5d575816f80636916 (diff)
downloaddimension-a5a6b94c038e01ebf1e2de0a0774a69b02fb8e1e.tar.xz
Group tests and benchmarks with the corresponding source code.
Diffstat (limited to 'dimension/bench')
-rw-r--r--dimension/bench/Makefile.am35
-rw-r--r--dimension/bench/bench.pov118
-rwxr-xr-xdimension/bench/parse.sh59
-rwxr-xr-xdimension/bench/render.sh25
-rwxr-xr-xdimension/bench/tokenize.sh24
5 files changed, 261 insertions, 0 deletions
diff --git a/dimension/bench/Makefile.am b/dimension/bench/Makefile.am
new file mode 100644
index 0000000..e7fe03f
--- /dev/null
+++ b/dimension/bench/Makefile.am
@@ -0,0 +1,35 @@
+###########################################################################
+## Copyright (C) 2009-2010 Tavian Barnes <tavianator@tavianator.com> ##
+## ##
+## This file is part of The Dimension Build Suite. ##
+## ##
+## The Dimension Build 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 Build 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/>. ##
+###########################################################################
+
+ENVIRONMENT = top_builddir=$(top_builddir)
+
+bench: tokenize.sh parse.sh render.sh
+ $(ENVIRONMENT) ./tokenize.sh
+ $(ENVIRONMENT) ./parse.sh
+ $(ENVIRONMENT) ./render.sh
+
+.sh:
+ cp $(srcdir)/$@ .
+
+clean-local:
+ rm -f *.png
+
+EXTRA_DIST = bench.pov
+
+.PHONY: bench
diff --git a/dimension/bench/bench.pov b/dimension/bench/bench.pov
new file mode 100644
index 0000000..a4f632f
--- /dev/null
+++ b/dimension/bench/bench.pov
@@ -0,0 +1,118 @@
+/*************************************************************************
+ * Copyright (C) 2009-2010 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This file is part of The Dimension Benchmark Suite. *
+ * *
+ * The Dimension Benchmark 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 Benchmark 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/>. *
+ *************************************************************************/
+
+camera {
+ location <3.0, 6.0, -11.0>
+ right x*image_width/image_height
+ look_at 0
+}
+
+background {
+ color rgb 1
+}
+
+// inside center sphere
+light_source {
+ 0,
+ color rgb 1
+}
+
+light_source {
+ 2*y,
+ color rgb 1
+}
+
+/* plane {
+ y,
+ -1
+ // *** hollow on
+ pigment {
+ rgb <0.73, 0.90, 0.97>
+ }
+ finish {
+ diffuse 0.35
+ ambient .5
+ }
+} */
+
+#macro sph(center)
+ sphere {
+ center,
+ 1
+ texture {
+ // *** crackle
+ scale 0.5
+
+ /* *** texture_map {
+ [ 0.03
+ pigment {
+ color rgb 1
+ }
+ finish {
+ ambient 1
+ }
+ normal {
+ facets size 0.1
+ }
+ ]
+ [ 0.04
+ pigment {
+ color rgbf <1, 1, 1, 0.9>
+ }
+ finish {
+ reflection { 0.2 }
+ specular 0.1
+ roughness 0.02
+ conserve_energy
+ }
+ normal {
+ facets size 0.1
+ }
+ ]
+ } *** */
+ }
+ interior {
+ ior 1.3
+ }
+ }
+#end
+
+union {
+ #declare Size = 4;
+ #declare I = -Size;
+ #while (I <= Size)
+ #declare J = -Size;
+
+ #while (J <= Size)
+ #declare K = -Size;
+
+ #while (K <= Size)
+ object {
+ sph(<2.5*I, 2.5*K, 2.5*J>)
+ }
+
+ #declare K = K + 1;
+ #end
+
+ #declare J = J + 1;
+ #end
+
+ #declare I = I + 1;
+ #end
+}
diff --git a/dimension/bench/parse.sh b/dimension/bench/parse.sh
new file mode 100755
index 0000000..b7db055
--- /dev/null
+++ b/dimension/bench/parse.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+#########################################################################
+# Copyright (C) 2009-2010 Tavian Barnes <tavianator@tavianator.com> #
+# #
+# This file is part of The Dimension Benchmark Suite. #
+# #
+# The Dimension Benchmark 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 Benchmark 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/>. #
+#########################################################################
+
+for i in {1..10000}; do
+ echo '
+difference {
+ box {
+ <-1, -1, -1>, <1, 1, 1>
+
+ rotate 45*x
+
+ texture {
+ pigment {
+ color rgbft <0, 0, 1, 0.25, 0.5>
+ }
+ finish {
+ reflection { 0.5 }
+ }
+ }
+
+ interior {
+ ior 1.1
+ }
+ }
+
+ sphere {
+ <0, 0, 0>, 1.25
+
+ texture {
+ pigment {
+ color rgb <0, 1, 0>
+ }
+ finish {
+ phong 0.2
+ phong_size 40.0
+ }
+ }
+ }
+}
+'
+done | (time ${top_builddir}/dimension/dimension --parse /dev/stdin >/dev/null)
diff --git a/dimension/bench/render.sh b/dimension/bench/render.sh
new file mode 100755
index 0000000..b661e53
--- /dev/null
+++ b/dimension/bench/render.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+#########################################################################
+# Copyright (C) 2009-2011 Tavian Barnes <tavianator@tavianator.com> #
+# #
+# This file is part of The Dimension Benchmark Suite. #
+# #
+# The Dimension Benchmark 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 Benchmark 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/>. #
+#########################################################################
+
+echo -e "Single-threaded"
+time ${top_builddir}/dimension/dimension -w1920 -h1080 --quality=1 --threads=1 bench.pov
+echo -e "\nMulti-threaded"
+time ${top_builddir}/dimension/dimension -w1920 -h1080 --quality=1 bench.pov
diff --git a/dimension/bench/tokenize.sh b/dimension/bench/tokenize.sh
new file mode 100755
index 0000000..1d833d5
--- /dev/null
+++ b/dimension/bench/tokenize.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+#########################################################################
+# Copyright (C) 2009-2010 Tavian Barnes <tavianator@tavianator.com> #
+# #
+# This file is part of The Dimension Benchmark Suite. #
+# #
+# The Dimension Benchmark 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 Benchmark 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/>. #
+#########################################################################
+
+for i in {1..10000}; do
+ echo '{}()[]+-*/,;?:&.|=<>!<= >= != "This is a string with escape sequences: \a\b\f\n\r\t\u2123\v\\\"" 1 123456789 01234567 0x123456789 -0x01 .1 0.1 1.0 0.123456789 -0.123456789 <1, 2.2, -3.03> Undefined'
+done | (time ${top_builddir}/dimension/dimension --tokenize /dev/stdin >/dev/null)