Created
February 4, 2016 16:40
-
-
Save benbenbenbenbenben/3be07a64a4e292422857 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var Slots = require('./slots.js'); | |
exports.slotsTests = { | |
irregularShapeDoesNotThrowWhenRotated: (test) => { | |
test.expect(2); | |
var s_h = new Slots({width:3}); | |
var s_v = new Slots({height:3}); | |
var fault = false; | |
try { s_h.shapeToArray(10, 1); } | |
catch (E) { test.ok(E == 'x exceeds max width'); } | |
try { s_v.shapeToArray(10, 1); } | |
catch (E) { fault = true; } | |
test.ok(fault == false); | |
test.done(); | |
}, | |
largeShapeThrows: (test) => { | |
test.expect(1); | |
var s = new Slots({width:3}); | |
try { s.shapeToArray(4, 4); } | |
catch (E) { test.ok(E == 'x exceeds max width'); } | |
test.done(); | |
}, | |
largeShapeThrowsRot: (test) => { | |
test.expect(1); | |
var s = new Slots({height:3}); | |
try { s.shapeToArray(4, 4); } | |
catch (E) { test.ok(E == 'y exceeds max height'); } | |
test.done(); | |
}, | |
shapeToArray2x2yReturnsExpectedArray: (test) => { | |
test.expect(7); | |
var expected = [1, 1, 0, | |
1, 1, 0]; | |
var s = new Slots({width:3}); | |
var result = s.shapeToArray(2, 2); | |
test.ok(result.length == expected.length); | |
test.ok(result[0] == expected[0]); | |
test.ok(result[1] == expected[1]); | |
test.ok(result[2] == expected[2]); | |
test.ok(result[3] == expected[3]); | |
test.ok(result[4] == expected[4]); | |
test.ok(result[5] == expected[5]); | |
test.done(); | |
}, | |
shapeToArray1x2yReturnsExpectedArray: (test) => { | |
test.expect(7); | |
var expected = [1, 0, 0, | |
1, 0, 0]; | |
var s = new Slots({width:3}); | |
var result = s.shapeToArray(1, 2); | |
test.ok(result.length == expected.length); | |
test.ok(result[0] == expected[0]); | |
test.ok(result[1] == expected[1]); | |
test.ok(result[2] == expected[2]); | |
test.ok(result[3] == expected[3]); | |
test.ok(result[4] == expected[4]); | |
test.ok(result[5] == expected[5]); | |
test.done(); | |
}, | |
shapeToArray2x1yReturnsExpectedArray: (test) => { | |
test.expect(4); | |
var expected = [1, 1, 0]; | |
var s = new Slots({width:3}); | |
var result = s.shapeToArray(2, 1); | |
test.ok(result.length == expected.length); | |
test.ok(result[0] == expected[0]); | |
test.ok(result[1] == expected[1]); | |
test.ok(result[2] == expected[2]); | |
test.done(); | |
}, | |
shapeToArray1x1yReturnsExpectedArray: (test) => { | |
test.expect(4); | |
var expected = [1, 0, 0]; | |
var s = new Slots({width:3}); | |
var result = s.shapeToArray(1, 1); | |
test.ok(result.length == expected.length); | |
test.ok(result[0] == expected[0]); | |
test.ok(result[1] == expected[1]); | |
test.ok(result[2] == expected[2]); | |
test.done(); | |
}, | |
peek1x1yReturns0x0y: (test) => { | |
test.expect(2); | |
var s = new Slots({width:4}); | |
var result = s.peek(1, 1); | |
test.ok(result.x == 0); | |
test.ok(result.y == 0); | |
test.done(); | |
}, | |
peek2x2yReturns0x0y: (test) => { | |
test.expect(2); | |
var s = new Slots({width:4}); | |
var result = s.peek(2, 2); | |
test.ok(result.x == 0); | |
test.ok(result.y == 0); | |
test.done(); | |
}, | |
peek10x10Throws: (test) => { | |
test.expect(1); | |
var s = new Slots({width:4}); | |
try { s.peek(10, 10); } | |
catch (E) { test.ok(E == 'x exceeds max width'); } | |
test.done(); | |
}, | |
add1x1yProducesExpectedGrid: (test) => { | |
test.expect(2); | |
var s = new Slots({width:3}); | |
test.ok(s.grid == 0); | |
s.add(1,1); | |
test.ok(s.grid == 1); | |
test.done(); | |
}, | |
add1x1yTwiceProducesExpectedGrid: (test) => { | |
test.expect(3); | |
var s = new Slots({width:3}); | |
test.ok(s.grid == 0); | |
s.add(1,1); | |
test.ok(s.grid == 1); | |
s.add(1,1); | |
test.ok(s.grid == 3); | |
test.done(); | |
}, | |
add1x1yFourTimesProducesExpectedGrid: (test) => { | |
test.expect(5); | |
var s = new Slots({width:3}); | |
test.ok(s.grid == 0); | |
s.add(1,1); | |
test.ok(s.grid == 1); | |
s.add(1,1); | |
test.ok(s.grid == 3); | |
s.add(1,1); | |
test.ok(s.grid == 7); | |
s.add(1,1); | |
test.ok(s.grid == 15); | |
test.done(); | |
}, | |
add2x2yProducesExpectedGrid: (test) => { | |
test.expect(2); | |
var s = new Slots({width:3}); | |
test.ok(s.grid == 0); | |
s.add(2,2); | |
test.ok(s.grid == 27); | |
test.done(); | |
}, | |
add2x2yThen1x1yProducesExpectedGrid: (test) => { | |
test.expect(3); | |
var s = new Slots({width:3}); | |
test.ok(s.grid == 0); | |
s.add(2,2); | |
test.ok(s.grid == 27); | |
s.add(1,1); | |
test.ok(s.grid == 31); | |
test.done(); | |
}, | |
add2x2yThen2x2yProducesExpectedGrid: (test) => { | |
test.expect(3); | |
var s = new Slots({width:3}); | |
test.ok(s.grid == 0); | |
s.add(2,2); | |
test.ok(s.grid == 27); | |
s.add(2,2); | |
test.ok(s.grid == 1755); | |
test.done(); | |
}, | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment