Skip to content

Commit

Permalink
Merge 6095bb1 into 5409c2f
Browse files Browse the repository at this point in the history
  • Loading branch information
demarius committed Apr 21, 2015
2 parents 5409c2f + 6095bb1 commit dd80a1b
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 23 deletions.
2 changes: 1 addition & 1 deletion area.js
Expand Up @@ -13,8 +13,8 @@ function Area (left, top, bottom, right) { // :: Int -> Int -> Int -> Int -> Are
Area.prototype.intersect = function (other) { // :: Area -> Area
var left = Math.max(this.left, other.left),
top = Math.min(this.top, other.top),
right = Math.min(this.right, other.right),
bottom = Math.max(this.bottom, other.bottom),
right = Math.min(this.right, other.right),
width = right - left,
height = top - bottom
if (width < 0 || height < 0) {
Expand Down
4 changes: 3 additions & 1 deletion t/r-tree/combine.t.js
@@ -1,6 +1,6 @@
#!/usr/bin/env node

require ('proof')(3, prove)
require ('proof')(4, prove)

function prove (assert) {
var rects = require('../../area.js')
Expand All @@ -9,8 +9,10 @@ function prove (assert) {
var b = new rects.Area(0, 7, 0, 7)
var c = new rects.Area(5, 10, 5, 10)
var d = new rects.Area(15, 5, 0, 20)
var e = new rects.Area(-20, 10, -20, 10)

assert(a.combine(b), b, "Combined (0, 5, 0, 5) and (0, 7, 0, 7)" )
assert(b.combine(c), new rects.Area(0, 10, 0, 10), "Combined (0, 5, 0, 5) and (0, 7, 0, 7)" )
assert(c.combine(d), new rects.Area(5, 10, 0, 20), "Combined (0, 5, 0, 5) and (0, 7, 0, 7)" )
assert(e.combine(d), new rects.Area(-20, 10, -20, 20), "Combined")
}
7 changes: 3 additions & 4 deletions t/r-tree/containsPoint.t.js
@@ -1,15 +1,14 @@
#!/usr/bin/env node

require ('proof')(5, prove)
require ('proof')(4, prove)

function prove (assert) {
var rects = require('../../area.js')

var a = new rects.Area(0, 5, 0, 5)
var a = new rects.Area(-10, 5, -5, 0)
var b = new rects.Area(0, 7, 0, 7)
var c = new rects.Area(5, 10, 5, 10)
var d = new rects.Area(15, 5, 0, 20)

assert(a.containsPoint(-2, -2), true, "Square(-10, 5, -5, 0) contains point(-2, -2)")
assert(b.containsPoint(2,2), true , "Square(0,7,0,7) contains point(2,2)")
assert(b.containsPoint(0,0), true , "Square(0,7,0,7) contains point(0,0)")
assert(b.containsPoint(8,8), false , "Square(0,7,0,7) doesn't contain point(8,8)")
Expand Down
4 changes: 3 additions & 1 deletion t/r-tree/intersect.t.js
@@ -1,6 +1,6 @@
#!/usr/bin/env node

require ('proof')(4, prove)
require ('proof')(5, prove)

function prove (assert) {
var rects = require('../../area.js')
Expand All @@ -9,9 +9,11 @@ function prove (assert) {
var b = new rects.Area(0, 7, 0, 7)
var c = new rects.Area(5, 10, 5, 10)
var d = new rects.Area(15, 5, 0, 20)
var e = new rects.Area(-5, 5, -3, 2)

assert(b.intersect(a), new rects.Area(0, 5, 2, 5), "Intersect of (0, 5, 2, 5) and (0, 7, 0, 7) is (0, 5, 2, 5)")
assert(a.intersect(c), new rects.Area(5, 5, 5, 5), "Intersect of (0, 5, 7, 5) and (5, 10, 5, 10) is (5, 5, 7, 5)")
assert(b.intersect(c), new rects.Area(5, 7, 5, 7), "Intersect of (0, 7, 0, 7) and (5, 10, 5, 10) is (5, 7, 5, 7)")
assert(c.intersect(d), null, "Intersect of (5, 10, 5, 10) and (15, 5, 0, 20) is null")
assert(e.intersect(a), new rects.Area(0, 5, 2, 2), "Intersect of (0, 5, 2, 5) and (-5, 5, -3, 2) is (0, 5, 2, 2)")
}
5 changes: 3 additions & 2 deletions t/r-tree/intersects.t.js
@@ -1,6 +1,6 @@
#!/usr/bin/env node

require ('proof')(4, prove)
require ('proof')(5, prove)

function prove (assert) {
var rects = require('../../area.js')
Expand All @@ -9,10 +9,11 @@ function prove (assert) {
var b = new rects.Area(0, 7, 0, 7)
var c = new rects.Area(5, 10, 5, 10)
var d = new rects.Area(15, 5, 0, 20)
var e = new rects.Area(15, 10, 5, 20)
var e = new rects.Area(-15, 10, -5, 20)

assert(a.intersects(b), true , "Square(0,7,0,7) intersects Square(0,5,0,5")
assert(b.intersects(c), true , "Square(5,10,5,10) intersects Square(0,7,0,7")
assert(d.intersects(a), false , "Square(15,5,0,20) doesn't intersect Square(0,5,0,5)")
assert(d.intersects(a), false, "Square(15,5,0,20) doesn't intersect Square(15,10,5,20)")
assert(e.intersects(c), false, "Square(-15,10,-5,20) intersects Square(0,7,0,7")
}
25 changes: 25 additions & 0 deletions t/r-tree/splitx.t.js
@@ -0,0 +1,25 @@
#!/usr/bin/env node

require ('proof')(3, prove)

function prove (assert) {
var rects = require('../../area.js')

var area = new rects.Area(0, 10, 0, 10)

assert(area.splitX(5), [
new rects.Area(0, 10, 0, 5),
new rects.Area(5, 10, 0, 10)
], "Split x by 5")
assert(area.splitX(2), [
new rects.Area(0, 10, 0, 2),
new rects.Area(2, 10, 0, 10)
], "Split x by 2")

area = new rects.Area(-Infinity, Infinity, -Infinity, Infinity)

assert(area.splitX(5), [
new rects.Area(-Infinity, Infinity, -Infinity, 5),
new rects.Area(5, Infinity, -Infinity, Infinity)
], "Split x by 5")
}
15 changes: 1 addition & 14 deletions t/r-tree/split.t.js → t/r-tree/splity.t.js 100755 → 100644
@@ -1,20 +1,11 @@
#!/usr/bin/env node

require ('proof')(6, prove)

require ('proof')(3, prove)
function prove (assert) {
var rects = require('../../area.js')

var area = new rects.Area(0, 10, 0, 10)

assert(area.splitX(5), [
new rects.Area(0, 10, 0, 5),
new rects.Area(5, 10, 0, 10)
], "Split x by 5")
assert(area.splitX(2), [
new rects.Area(0, 10, 0, 2),
new rects.Area(2, 10, 0, 10)
], "Split x by 2")
assert(area.splitY(5), [
new rects.Area(0, 5, 0, 10),
new rects.Area(0, 10, 5, 10)
Expand All @@ -26,10 +17,6 @@ function prove (assert) {

area = new rects.Area(-Infinity, Infinity, -Infinity, Infinity)

assert(area.splitX(5), [
new rects.Area(-Infinity, Infinity, -Infinity, 5),
new rects.Area(5, Infinity, -Infinity, Infinity)
], "Split x by 5")
assert(area.splitY(10), [
new rects.Area(-Infinity, 10, -Infinity, Infinity),
new rects.Area(-Infinity, Infinity, 10, Infinity)
Expand Down

0 comments on commit dd80a1b

Please sign in to comment.