diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/structs/treenode_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/structs/treenode_test.html | 370 |
1 files changed, 0 insertions, 370 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/structs/treenode_test.html b/contexts/data/lib/closure-library/closure/goog/structs/treenode_test.html deleted file mode 100644 index c858b29..0000000 --- a/contexts/data/lib/closure-library/closure/goog/structs/treenode_test.html +++ /dev/null @@ -1,370 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2010 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<!-- ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>Closure Unit Tests - goog.structs.TreeNode</title> -<script src="../base.js"></script> -<script> - goog.require('goog.array'); - goog.require('goog.structs.TreeNode'); - goog.require('goog.testing.jsunit'); -</script> -</head> -<body> -<script> - -function testConstructor() { - var node = new goog.structs.TreeNode('key', 'value'); - assertEquals('key', 'key', node.getKey()); - assertEquals('value', 'value', node.getValue()); - assertNull('parent', node.getParent()); - assertArrayEquals('children', [], node.getChildren()); - assertTrue('leaf', node.isLeaf()); -} - -function testClone() { - var node1 = new goog.structs.TreeNode(1, '1'); - var node2 = new goog.structs.TreeNode(2, '2'); - var node3 = new goog.structs.TreeNode(3, '3'); - node1.addChild(node2); - node2.addChild(node3); - - var clone = node2.clone(); - assertEquals('key', 2, clone.getKey()); - assertEquals('value', '2', clone.getValue()); - assertNull('parent', clone.getParent()); - assertArrayEquals('children', [], clone.getChildren()); -} - -function testDeepClone() { - var node1 = new goog.structs.TreeNode(1, '1'); - var node2 = new goog.structs.TreeNode(2, '2'); - var node3 = new goog.structs.TreeNode(3, '3'); - node1.addChild(node2); - node2.addChild(node3); - - var clone = node2.deepClone(); - assertEquals('key', 2, clone.getKey()); - assertEquals('value', '2', clone.getValue()); - assertNull('parent', clone.getParent()); - assertEquals('number of children', 1, clone.getChildren().length); - assertEquals('first child key', 3, clone.getChildAt(0).getKey()); - assertNotEquals('first child has been cloned', node3, clone.getChildAt(0)); -} - -function testGetParent() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - node1.addChild(node2); - assertEquals('parent', node1, node2.getParent()); - assertNull('orphan', node1.getParent()); -} - -function testIsLeaf() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - node1.addChild(node2); - assertFalse('not leaf', node1.isLeaf()); - assertTrue('leaf', node2.isLeaf()); -} - -function testIsLastChild() { - var node1 = new goog.structs.TreeNode(1, '1'); - var node2 = new goog.structs.TreeNode(2, '2'); - var node3 = new goog.structs.TreeNode(3, '3'); - node1.addChild(node2); - node1.addChild(node3); - assertFalse('root', node1.isLastChild()); - assertFalse('first child out of the two', node2.isLastChild()); - assertTrue('second child out of the two', node3.isLastChild()); -} - -function testGetChildren() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - node1.addChild(node2); - assertArrayEquals('1 child', [node2], node1.getChildren()); - assertArrayEquals('no children', [], node2.getChildren()); -} - -function testGetChildAt() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - node1.addChild(node2); - assertNull('index too low', node1.getChildAt(-1)); - assertEquals('first child', node2, node1.getChildAt(0)); - assertNull('index too high', node1.getChildAt(1)); - assertNull('no children', node2.getChildAt(0)); -} - -function testGetChildCount() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - node1.addChild(node2); - assertEquals('child count of root node', 1, node1.getChildCount()); - assertEquals('child count of leaf node', 0, node2.getChildCount()); -} - -function testGetDepth() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - node1.addChild(node2); - node2.addChild(node3); - assertEquals('no parent', 0, node1.getDepth()); - assertEquals('1 ancestor', 1, node2.getDepth()); - assertEquals('2 ancestors', 2, node3.getDepth()); -} - -function testGetAncestors() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - node1.addChild(node2); - node2.addChild(node3); - assertArrayEquals('no ancestors', [], node1.getAncestors()); - assertArrayEquals('2 ancestors', [node2, node1], node3.getAncestors()); -} - -function testGetRoot() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - node1.addChild(node2); - assertEquals('no ancestors', node1, node1.getRoot()); - assertEquals('has ancestors', node1, node2.getRoot()); -} - -function testGetSubtreeKeys() { - var root = new goog.structs.TreeNode('root', null); - var child1 = new goog.structs.TreeNode('child1', null); - var child2 = new goog.structs.TreeNode('child2', null); - var grandchild = new goog.structs.TreeNode('grandchild', null); - root.addChild(child1); - root.addChild(child2); - child1.addChild(grandchild); - assertArrayEquals('node hierarchy', ['child1', ['grandchild'], 'child2'], - root.getSubtreeKeys()); -} - -function testContains() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - var node4 = new goog.structs.TreeNode(4, null); - node1.addChild(node2); - node2.addChild(node3); - node2.addChild(node4); - - assertTrue('parent', node1.contains(node2)); - assertTrue('grandparent', node1.contains(node3)); - assertFalse('child', node2.contains(node1)); - assertFalse('grandchild', node3.contains(node1)); - assertFalse('sibling', node3.contains(node4)); -} - -function testFindCommonAncestor() { - var findCommonAncestor = goog.structs.TreeNode.findCommonAncestor; - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - var node4 = new goog.structs.TreeNode(4, null); - var node5 = new goog.structs.TreeNode(5, null); - node1.addChild(node2); - node2.addChild(node3); - node1.addChild(node4); - - assertNull('0 nodes', findCommonAncestor()); - assertEquals('1 node', node2, findCommonAncestor(node2)); - assertEquals('same nodes', node3, findCommonAncestor(node3, node3)); - assertEquals('node and child node', node2, findCommonAncestor(node2, node3)); - assertEquals('node and parent node', node1, findCommonAncestor(node2, node1)); - assertEquals('siblings', node1, findCommonAncestor(node2, node4)); - assertEquals('all nodes', node1, - findCommonAncestor(node2, node3, node4, node1)); - assertNull('disconnected nodes', findCommonAncestor(node3, node5)); -} - -function testForEachChild() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - node1.addChild(node2); - node1.addChild(node3); - - var thisContext = {}; - var visitedNodes = []; - var indices = []; - node1.forEachChild(function(node, index, children) { - assertEquals('value of this', thisContext, this); - visitedNodes.push(node); - indices.push(index); - assertArrayEquals('children argument', [node2, node3], children); - }, thisContext); - assertArrayEquals('visited nodes', [node2, node3], visitedNodes); - assertArrayEquals('index of visited nodes', [0, 1], indices); -} - -function testForEachDescendant() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - var node4 = new goog.structs.TreeNode(4, null); - node1.addChild(node2); - node2.addChild(node3); - node2.addChild(node4); - - var thisContext = {}; - var visitedNodes = []; - node1.forEachDescendant(function(node) { - assertEquals('value of this', thisContext, this); - visitedNodes.push(node); - }, thisContext); - assertArrayEquals('visited nodes', [node2, node3, node4], visitedNodes); -} - -function testTraverse() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - var node4 = new goog.structs.TreeNode(4, null); - node1.addChild(node2); - node2.addChild(node3); - node2.addChild(node4); - - var thisContext = {}; - var visitedNodes = []; - node1.traverse(function(node) { - assertEquals('value of this', thisContext, this); - visitedNodes.push(node); - }, thisContext); - assertArrayEquals('callback returns nothing => all nodes are visited', - [node1, node2, node3, node4], visitedNodes); - - visitedNodes = []; - node1.traverse(function(node) { - visitedNodes.push(node); - return node != node2; // Cut off at node2. - }); - assertArrayEquals('children of node2 are skipped', - [node1, node2], visitedNodes); -} - -function testAddChild() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - assertArrayEquals('0 children', [], node1.getChildren()); - node1.addChild(node2); - assertArrayEquals('1 child', [node2], node1.getChildren()); - assertEquals('parent is set', node1, node2.getParent()); - node1.addChild(node3); - assertArrayEquals('2 children', [node2, node3], node1.getChildren()); -} - -function testAddChildAt() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - var node4 = new goog.structs.TreeNode(4, null); - var node5 = new goog.structs.TreeNode(5, null); - node1.addChildAt(node2, 0); - assertArrayEquals('add first child', [node2], node1.getChildren()); - assertEquals('parent is set', node1, node2.getParent()); - node1.addChildAt(node3, 0); - assertArrayEquals('add to the front', [node3, node2], - node1.getChildren()); - node1.addChildAt(node4, 1); - assertArrayEquals('add to the middle', [node3, node4, node2], - node1.getChildren()); - node1.addChildAt(node5, 3); - assertArrayEquals('add to the end', [node3, node4, node2, node5], - node1.getChildren()); -} - -function testReplaceChildAt() { - var root = new goog.structs.TreeNode(0, null); - var node1 = new goog.structs.TreeNode(1, null); - root.addChild(node1); - - var node2 = new goog.structs.TreeNode(2, null); - assertEquals('original node', node1, root.replaceChildAt(node2, 0)); - assertEquals('parent is set', root, node2.getParent()); - assertArrayEquals('children are updated', [node2], root.getChildren()); - assertNull('old child node is detached', node1.getParent()); -} - -function testReplaceChild() { - var root = new goog.structs.TreeNode(0, null); - var node1 = new goog.structs.TreeNode(1, null); - root.addChild(node1); - - var node2 = new goog.structs.TreeNode(2, null); - assertEquals('original node', node1, root.replaceChild(node2, node1)); - assertEquals('parent is set', root, node2.getParent()); - assertArrayEquals('children are updated', [node2], root.getChildren()); - assertNull('old child node is detached', node1.getParent()); -} - -function testRemoveChildAt() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - node1.addChild(node2); - node1.addChild(node3); - - assertNull('index too low', node1.removeChildAt(-1)); - assertNull('index too high', node1.removeChildAt(2)); - assertArrayEquals('node1 is intact', [node2, node3], node1.getChildren()); - - assertEquals('remove first child', node2, node1.removeChildAt(0)); - assertArrayEquals('remove from the front', [node3], node1.getChildren()); - assertNull('parent is unset', node2.getParent()); - - assertEquals('remove last child', node3, node1.removeChildAt(0)); - assertArrayEquals('remove last child', [], node1.getChildren()); - assertTrue('node1 became leaf', node1.isLeaf()); -} - -function testRemoveChild() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - node1.addChild(node2); - node1.addChild(node3); - - assertNull('remove null', node1.removeChild(null)); - assertNull('remove non-child', node1.removeChild(node1)); - assertArrayEquals('node1 is intact', [node2, node3], node1.getChildren()); - - assertEquals('remove node3, return value', node3, node1.removeChild(node3)); - assertArrayEquals('node is removed', [node2], node1.getChildren()); -} - -function testRemoveChildren() { - var node1 = new goog.structs.TreeNode(1, null); - var node2 = new goog.structs.TreeNode(2, null); - var node3 = new goog.structs.TreeNode(3, null); - node1.addChild(node2); - node1.addChild(node3); - - node2.removeChildren(); - assertArrayEquals('removing a leaf node\'s children has no effect', [], - node2.getChildren()); - assertEquals('node still has parent', node1, node2.getParent()); - - node1.removeChildren(); - assertArrayEquals('children have been removed', [], node1.getChildren()); - assertNull('children\'s parents have been unset', node2.getParent()); -} - -</script> -</body> -</html> |