tests
This commit is contained in:
71
tests/rtree.cm
Normal file
71
tests/rtree.cm
Normal file
@@ -0,0 +1,71 @@
|
||||
var rtree = use('rtree')
|
||||
var RTree = rtree
|
||||
|
||||
return {
|
||||
basic_add_query: function() {
|
||||
var tree = new RTree()
|
||||
var item1 = {x: 10, y: 10, w: 10, h: 10, id: 1}
|
||||
tree.add(item1)
|
||||
|
||||
var res = tree.query({x: 0, y: 0, w: 100, h: 100})
|
||||
if (res.length != 1) throw "Expected 1 item, got " + text(res.length)
|
||||
if (res[0].id != 1) throw "Item ID mismatch"
|
||||
|
||||
var res2 = tree.query({x: 50, y: 50, w: 10, h: 10})
|
||||
if (res2.length != 0) throw "Expected 0 items, got " + text(res2.length)
|
||||
},
|
||||
|
||||
size_check: function() {
|
||||
var tree = new RTree()
|
||||
tree.add({x: 0, y: 0, w: 1, h: 1})
|
||||
tree.add({x: 2, y: 2, w: 1, h: 1})
|
||||
if (tree.size != 2) throw "Expected size 2, got " + text(tree.size)
|
||||
},
|
||||
|
||||
delete_item: function() {
|
||||
var tree = new RTree()
|
||||
var item = {x: 10, y: 10, w: 10, h: 10}
|
||||
tree.add(item)
|
||||
if (tree.size != 1) throw "Add failed"
|
||||
|
||||
tree.delete(item)
|
||||
if (tree.size != 0) throw "Delete failed"
|
||||
|
||||
var res = tree.query({x: 0, y: 0, w: 100, h: 100})
|
||||
if (res.length != 0) throw "Query returned deleted item"
|
||||
},
|
||||
|
||||
has_item: function() {
|
||||
var tree = new RTree()
|
||||
var item = {x: 10, y: 10, w: 10, h: 10}
|
||||
tree.add(item)
|
||||
if (!tree.has(item)) throw "has() returned false"
|
||||
|
||||
var item2 = {x: 10, y: 10, w: 10, h: 10}
|
||||
if (tree.has(item2)) throw "has() returned true for different object"
|
||||
},
|
||||
|
||||
forEach_test: function() {
|
||||
var tree = new RTree()
|
||||
var items = []
|
||||
for(var i=0; i<10; i++) {
|
||||
var item = {x: i*10, y: 0, w: 5, h: 5, idx: i}
|
||||
items.push(item)
|
||||
tree.add(item)
|
||||
}
|
||||
|
||||
var count = 0
|
||||
tree.forEach(function(item) {
|
||||
count++
|
||||
})
|
||||
if (count != 10) throw "forEach counted " + count
|
||||
},
|
||||
|
||||
values_test: function() {
|
||||
var tree = new RTree()
|
||||
tree.add({x:0,y:0,w:1,h:1})
|
||||
var vals = tree.values()
|
||||
if (!Array.isArray(vals)) throw "values() did not return array"
|
||||
if (vals.length != 1) throw "values() length mismatch"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user