From a5a6b94c038e01ebf1e2de0a0774a69b02fb8e1e Mon Sep 17 00:00:00 2001 From: Tavian Barnes 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 ## +## ## +## 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 . ## +########################################################################### + +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 * + * * + * 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 . * + *************************************************************************/ + +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 # +# # +# 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 . # +######################################################################### + +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 # +# # +# 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 . # +######################################################################### + +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 # +# # +# 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 . # +######################################################################### + +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