From 9261438f86b1faf22a0f8d9a366fb0daa3dd090d Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 24 Jul 2014 14:45:22 -0400 Subject: iterative culling algorithm --- test/03-test-clipping.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'test/03-test-clipping.js') diff --git a/test/03-test-clipping.js b/test/03-test-clipping.js index 037b5ff..20dadb3 100644 --- a/test/03-test-clipping.js +++ b/test/03-test-clipping.js @@ -89,6 +89,8 @@ describe('clipper', function(){ Rooms.add_with_rect( corner ) Rooms.add_with_rect( peninsula ) +/* + // this method uses a tree to match areas, which tends to leave extra overlapping regions describe('#cull_rects(rect, corner, peninsula)', function(){ Rooms.clipper.reset_rects() var regions = Rooms.clipper.clip_rects() @@ -96,10 +98,6 @@ describe('clipper', function(){ var culled_dupes = culled.filter(function(r){ return r.dupe }) var culled_regions = culled.filter(function(r){ return ! r.dupe }) - report(culled_dupes) - report([]) - report(culled_regions) - it('clipper returns 16 rects', function(){ assert.equal(16, regions.length) }) @@ -110,6 +108,26 @@ describe('clipper', function(){ assert.equal(14, culled_regions.length) }) }) +*/ + + // this method iterates to match areas, which omits regions in some cases + describe('#cull_rects_iterative(rect, corner, peninsula)', function(){ + Rooms.clipper.reset_rects() + var regions = Rooms.clipper.clip_rects() + var culled = Rooms.clipper.cull_rects_iterative() + var culled_dupes = culled.filter(function(r){ return r.dupe }) + var culled_regions = culled.filter(function(r){ return ! r.dupe }) + + it('clipper returns 16 rects', function(){ + assert.equal(16, regions.length) + }) + it('culling marks 3 duplicate', function(){ + assert.equal(3, culled_dupes.length) + }) + it('culling marks 14 non-duplicate', function(){ + assert.equal(13, culled_regions.length) + }) + }) }) -- cgit v1.2.3-70-g09d2