From a5a6b94c038e01ebf1e2de0a0774a69b02fb8e1e Mon Sep 17 00:00:00 2001
From: Tavian Barnes <tavianator@gmail.com>
Date: Sun, 15 May 2011 15:54:56 -0600
Subject: Group tests and benchmarks with the corresponding source code.

---
 dimension/bench/Makefile.am |  35 +++++++++++++
 dimension/bench/bench.pov   | 118 ++++++++++++++++++++++++++++++++++++++++++++
 dimension/bench/parse.sh    |  59 ++++++++++++++++++++++
 dimension/bench/render.sh   |  25 ++++++++++
 dimension/bench/tokenize.sh |  24 +++++++++
 5 files changed, 261 insertions(+)
 create mode 100644 dimension/bench/Makefile.am
 create mode 100644 dimension/bench/bench.pov
 create mode 100755 dimension/bench/parse.sh
 create mode 100755 dimension/bench/render.sh
 create mode 100755 dimension/bench/tokenize.sh

(limited to 'dimension/bench')

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)
-- 
cgit v1.2.3