From cba00ac2a1365093c74afee15b9a6634f7870f1a Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 13 Mar 2011 18:53:03 -0400 Subject: Rename binary trees benchmark to match the original shootout source --- src/Makefile | 2 +- src/test/bench/shootout/binary-trees.rs | 74 --------------------------------- src/test/bench/shootout/binarytrees.rs | 74 +++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 75 deletions(-) delete mode 100644 src/test/bench/shootout/binary-trees.rs create mode 100644 src/test/bench/shootout/binarytrees.rs (limited to 'src') diff --git a/src/Makefile b/src/Makefile index a570f333..edf9ceb2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -576,7 +576,7 @@ TEST_XFAILS_RUSTC := $(addprefix test/run-pass/, \ ), \ $(wildcard test/*fail/*.rs test/*fail/*.rc)) \ test/bench/shootout/fasta.rs \ - test/bench/shootout/binary-trees.rs \ + test/bench/shootout/binarytrees.rs \ $(wildcard test/bench/99-bottles/*rs) ifdef MINGW_CROSS diff --git a/src/test/bench/shootout/binary-trees.rs b/src/test/bench/shootout/binary-trees.rs deleted file mode 100644 index 92bedb8b..00000000 --- a/src/test/bench/shootout/binary-trees.rs +++ /dev/null @@ -1,74 +0,0 @@ -use std; - -import std._int; - -tag tree { - nil; - node(@tree, @tree, int); -} - -fn item_check(@tree t) -> int { - alt (*t) { - case (nil) { - ret 0; - } - case (node(?left, ?right, ?item)) { - ret item + item_check(left) - item_check(right); - } - } -} - -fn bottom_up_tree(int item, int depth) -> @tree{ - if (depth > 0) { - ret @node(bottom_up_tree(2 * item - 1, depth - 1), - bottom_up_tree(2 * item, depth - 1), - item); - } else { - ret @nil; - } -} - -fn main() { - - auto n = 8; - auto min_depth = 4; - auto max_depth; - if (min_depth + 2 > n) { - max_depth = min_depth + 2; - } else { - max_depth = n; - } - - auto stretch_depth = max_depth + 1; - - auto stretch_tree = bottom_up_tree(0, stretch_depth); - log #fmt("stretch tree of depth %d\t check: %d", - stretch_depth, item_check(stretch_tree)); - - auto long_lived_tree = bottom_up_tree(0, max_depth); - - auto depth = min_depth; - while (depth <= max_depth) { - auto iterations = _int.pow(2, (max_depth - depth + min_depth) as uint); - auto chk = 0; - - auto i = 1; - while (i <= iterations) { - auto temp_tree = bottom_up_tree(i, depth); - chk += item_check(temp_tree); - - temp_tree = bottom_up_tree(-i, depth); - chk += item_check(temp_tree); - - i += 1; - } - - log #fmt("%d\t trees of depth %d\t check: %d", - iterations * 2, depth, chk); - - depth += 2; - } - - log #fmt("long lived trees of depth %d\t check: %d", - max_depth, item_check(long_lived_tree)); -} \ No newline at end of file diff --git a/src/test/bench/shootout/binarytrees.rs b/src/test/bench/shootout/binarytrees.rs new file mode 100644 index 00000000..92bedb8b --- /dev/null +++ b/src/test/bench/shootout/binarytrees.rs @@ -0,0 +1,74 @@ +use std; + +import std._int; + +tag tree { + nil; + node(@tree, @tree, int); +} + +fn item_check(@tree t) -> int { + alt (*t) { + case (nil) { + ret 0; + } + case (node(?left, ?right, ?item)) { + ret item + item_check(left) - item_check(right); + } + } +} + +fn bottom_up_tree(int item, int depth) -> @tree{ + if (depth > 0) { + ret @node(bottom_up_tree(2 * item - 1, depth - 1), + bottom_up_tree(2 * item, depth - 1), + item); + } else { + ret @nil; + } +} + +fn main() { + + auto n = 8; + auto min_depth = 4; + auto max_depth; + if (min_depth + 2 > n) { + max_depth = min_depth + 2; + } else { + max_depth = n; + } + + auto stretch_depth = max_depth + 1; + + auto stretch_tree = bottom_up_tree(0, stretch_depth); + log #fmt("stretch tree of depth %d\t check: %d", + stretch_depth, item_check(stretch_tree)); + + auto long_lived_tree = bottom_up_tree(0, max_depth); + + auto depth = min_depth; + while (depth <= max_depth) { + auto iterations = _int.pow(2, (max_depth - depth + min_depth) as uint); + auto chk = 0; + + auto i = 1; + while (i <= iterations) { + auto temp_tree = bottom_up_tree(i, depth); + chk += item_check(temp_tree); + + temp_tree = bottom_up_tree(-i, depth); + chk += item_check(temp_tree); + + i += 1; + } + + log #fmt("%d\t trees of depth %d\t check: %d", + iterations * 2, depth, chk); + + depth += 2; + } + + log #fmt("long lived trees of depth %d\t check: %d", + max_depth, item_check(long_lived_tree)); +} \ No newline at end of file -- cgit v1.2.3