mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
66 lines
1.5 KiB
HTML
66 lines
1.5 KiB
HTML
<html><head>
|
|
<!-- MOZ_INSERT_CONTENT_HOOK -->
|
|
<script src = runner.js></script>
|
|
<script>
|
|
var onlyName = 'Binary Trees', onlyNum = 8;
|
|
function thisTest() {
|
|
|
|
/* The Great Computer Language Shootout
|
|
http://shootout.alioth.debian.org/
|
|
contributed by Isaac Gouy */
|
|
|
|
function TreeNode(left,right,item){
|
|
this.left = left;
|
|
this.right = right;
|
|
this.item = item;
|
|
}
|
|
|
|
TreeNode.prototype.itemCheck = function(){
|
|
if (this.left==null) return this.item;
|
|
else return this.item + this.left.itemCheck() - this.right.itemCheck();
|
|
}
|
|
|
|
function bottomUpTree(item,depth){
|
|
if (depth>0){
|
|
return new TreeNode(
|
|
bottomUpTree(2*item-1, depth-1)
|
|
,bottomUpTree(2*item, depth-1)
|
|
,item
|
|
);
|
|
}
|
|
else {
|
|
return new TreeNode(null,null,item);
|
|
}
|
|
}
|
|
|
|
startTest("real-binary-trees");
|
|
|
|
var ret;
|
|
|
|
for ( var n = 2; n <= 8; n *= 2 ) (function(n){
|
|
test( "Binary Trees", n, function(){
|
|
var minDepth = 4;
|
|
var maxDepth = Math.max(minDepth + 2, n);
|
|
var stretchDepth = maxDepth + 1;
|
|
|
|
var check = bottomUpTree(0,stretchDepth).itemCheck();
|
|
|
|
var longLivedTree = bottomUpTree(0,maxDepth);
|
|
for (var depth=minDepth; depth<=maxDepth; depth+=2){
|
|
var iterations = 1 << (maxDepth - depth + minDepth);
|
|
|
|
check = 0;
|
|
for (var i=1; i<=iterations; i++){
|
|
check += bottomUpTree(i,depth).itemCheck();
|
|
check += bottomUpTree(-i,depth).itemCheck();
|
|
}
|
|
}
|
|
|
|
ret = longLivedTree.itemCheck();
|
|
});
|
|
})(n);
|
|
|
|
endTest();
|
|
}
|
|
</script>
|
|
<body onload="thisTest()"></body></html> |