summaryrefslogtreecommitdiff
path: root/test/07-test-surface.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/07-test-surface.js')
-rw-r--r--test/07-test-surface.js66
1 files changed, 63 insertions, 3 deletions
diff --git a/test/07-test-surface.js b/test/07-test-surface.js
index 48a2836..26a90e7 100644
--- a/test/07-test-surface.js
+++ b/test/07-test-surface.js
@@ -9,7 +9,67 @@ var Surface = require("../public/assets/javascripts/rectangles/models/surface.js
describe('basic surface', function(){
var surface = new Surface ()
- surface.add( new Rect( new vec2(1, 5), new vec2(0, 4) ) )
+ surface.add( new Rect( new vec2(1, 6), new vec2(0, 4) ) )
+
+ var small = new vec2(2, 2)
+ var oblong = new vec2(4, 1)
+
+ describe('#clamp_delta()', function(){
+ var position = new vec2(2,1)
+ it("does not alter a zero delta", function(){
+ var delta = new vec2(0,0)
+ surface.clamp_delta(surface.bounds, small, position, delta)
+ assert.equal(true, delta.eq(new vec2( 0, 0 )))
+ })
+ it("does not alter a minimal delta", function(){
+ var delta = new vec2(1,1)
+ surface.clamp_delta(surface.bounds, small, position, delta)
+ assert.equal(true, delta.eq(new vec2( 1, 1 )))
+ })
+ it("clamps leftward delta", function(){
+ var delta = new vec2(-10, 0)
+ surface.clamp_delta(surface.bounds, small, position, delta)
+ assert.equal(true, delta.eq(new vec2( -1, 0 )))
+ })
+ it("clamps rightward delta", function(){
+ var delta = new vec2(10, 0)
+ surface.clamp_delta(surface.bounds, small, position, delta)
+ assert.equal(true, delta.eq(new vec2( 2, 0 )))
+ })
+ it("clamps upward delta", function(){
+ var delta = new vec2(0, 10)
+ surface.clamp_delta(surface.bounds, small, position, delta)
+ assert.equal(true, delta.eq(new vec2( 0, 1 )))
+ })
+ it("clamps downward delta", function(){
+ var delta = new vec2(0, -10)
+ surface.clamp_delta(surface.bounds, small, position, delta)
+ assert.equal(true, delta.eq(new vec2( 0, -1 )))
+ })
+ })
+
+ describe('#place()', function(){
+ it("fits a small element on the top left", function(){
+ var bounds = surface.place(small, new vec2(1,3))
+// console.log(bounds)
+ })
+ it("places a small element on the right", function(){
+ var bounds = surface.place(small, new vec2(4,6))
+// console.log(bounds)
+ })
+ })
+
+ // describe placement
+ // describe dragging up (clamp at top edge)
+ // describe dragging down (clamp at bottom edge)
+ // describe dragging left (clamp at left edge)
+ // describe dragging right (clamp at right edge)
+})
+
+describe('double surface', function(){
+ var surface = new Surface ()
+ surface.add( new Rect( new vec2(0, 3), new vec2(0, 4) ) )
+ surface.add( new Rect( new vec2(3, 5), new vec2(0, 4) ) )
var small = new vec2(2, 2)
var oblong = new vec2(4, 1)
@@ -38,7 +98,7 @@ describe('triple surface', function(){
describe('two-level surface', function(){
var surface = new Surface ()
- surface.add( new Rect( new vec2(1, 3), new vec2(0, 4) ) )
+ surface.add( new Rect( new vec2(0, 3), new vec2(0, 4) ) )
surface.add( new Rect( new vec2(3, 5), new vec2(0, 6) ) )
var small = new vec2(2, 2)
@@ -54,7 +114,7 @@ describe('two-level surface', function(){
describe('door surface', function(){
var surface = new Surface ()
- surface.add( new Rect( new vec2(1, 3), new vec2(0, 4) ) )
+ surface.add( new Rect( new vec2(0, 3), new vec2(0, 4) ) )
surface.add( new Rect( new vec2(3, 4), new vec2(2, 4) ) )
surface.add( new Rect( new vec2(4, 6), new vec2(0, 4) ) )