mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-20 23:44:47 +02:00
Add tree test
This commit is contained in:
@@ -42,14 +42,16 @@ iD.History = function(context) {
|
||||
|
||||
merge: function(entities) {
|
||||
|
||||
var base = tree.graph(),
|
||||
|
||||
var base = stack[0].graph.base(),
|
||||
newentities = Object.keys(entities).filter(function(i) {
|
||||
return !base.entities.hasOwnProperty(i) && !base.entities[i];
|
||||
return !base.entities[i];
|
||||
});
|
||||
|
||||
for (var i = 0; i < stack.length; i++) {
|
||||
stack[i].graph.rebase(entities);
|
||||
}
|
||||
|
||||
tree.rebase(newentities);
|
||||
|
||||
dispatch.change();
|
||||
|
||||
+5
-1
@@ -1,3 +1,5 @@
|
||||
|
||||
|
||||
iD.Tree = function(graph) {
|
||||
|
||||
var rtree = new RTree(),
|
||||
@@ -32,7 +34,9 @@ iD.Tree = function(graph) {
|
||||
|
||||
rebase: function(entities) {
|
||||
for (var i = 0; i < entities.length; i++) {
|
||||
insert(graph.entity(entities[i]), true);
|
||||
if (!graph.hasOwnProperty(entities[i])) {
|
||||
insert(graph.entity(entities[i]), true);
|
||||
}
|
||||
}
|
||||
rebased = true;
|
||||
return tree;
|
||||
|
||||
@@ -12,6 +12,16 @@ describe("iD.Tree", function() {
|
||||
tree.rebase(['n']);
|
||||
expect(tree.intersects(iD.geo.Extent([0, 0], [2, 2]), tree.graph())).to.eql([node]);
|
||||
});
|
||||
|
||||
it("does not insert if entity has a modified version", function() {
|
||||
var node = iD.Node({ id: 'n', loc: [1, 1]}),
|
||||
node_ = node.update({ loc: [10, 10]}),
|
||||
g = tree.graph().replace(node_);
|
||||
expect(tree.intersects(iD.geo.Extent([9, 9], [11, 11]), g)).to.eql([node_]);
|
||||
tree.graph().rebase({ 'n': node });
|
||||
tree.rebase(['n']);
|
||||
expect(tree.intersects(iD.geo.Extent([0, 0], [2, 2]), tree.graph())).to.eql([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("#intersects", function() {
|
||||
|
||||
Reference in New Issue
Block a user