72 lines
No EOL
1.6 KiB
JavaScript
Executable file
72 lines
No EOL
1.6 KiB
JavaScript
Executable file
module('Tree', {
|
|
|
|
setup: function() {
|
|
this.branch = new Tree.Branch([
|
|
new Tree.Node(),
|
|
new Tree.Node(),
|
|
new Tree.Node()
|
|
]);
|
|
|
|
this.node = new Tree.Node(this.branch);
|
|
|
|
this.tree = new Tree.Root(
|
|
new Tree.Branch([
|
|
new Tree.Node(new Tree.Branch([
|
|
new Tree.Node(),
|
|
new Tree.Node()
|
|
]), {}),
|
|
new Tree.Node(new Tree.Branch([
|
|
new Tree.Node()
|
|
]), {}),
|
|
new Tree.Node(new Tree.Branch([
|
|
new Tree.Node(),
|
|
new Tree.Node(),
|
|
this.node,
|
|
new Tree.Node()
|
|
]), {})
|
|
])
|
|
);
|
|
},
|
|
|
|
teardown: function() {
|
|
delete this.branch;
|
|
delete this.node;
|
|
delete this.tree;
|
|
}
|
|
|
|
});
|
|
|
|
test('find node', function() {
|
|
var node = new Tree.Node();
|
|
|
|
equals(this.tree.find(this.node.id), this.node);
|
|
equals(this.tree.find(node.id), null);
|
|
});
|
|
|
|
test('insert node', function() {
|
|
var node = new Tree.Node();
|
|
this.tree.insert(node, this.node.id);
|
|
|
|
equals(this.node.children.size(), 4);
|
|
equals(_.last(this.node.children.nodes), node);
|
|
equals(node.branch, this.branch);
|
|
equals(this.tree.find(node.id), node);
|
|
});
|
|
|
|
test('insert node at index', function() {
|
|
var node = new Tree.Node();
|
|
this.tree.insert(node, this.node.id, 1);
|
|
|
|
equals(this.node.children.size(), 4);
|
|
equals(this.node.children.nodes[1], node);
|
|
equals(node.branch, this.branch);
|
|
equals(this.tree.find(node.id), node);
|
|
});
|
|
|
|
test('set index', function() {
|
|
this.tree.setIndex(this.node.id, 1);
|
|
|
|
equals(this.node.branch.size(), 4);
|
|
equals(this.node.branch.nodes[1], this.node);
|
|
equals(this.tree.find(this.node.id), this.node);
|
|
}); |