Skip to content

Instantly share code, notes, and snippets.

@benbenbenbenbenben
Created February 4, 2016 16:40
Show Gist options
  • Save benbenbenbenbenben/3be07a64a4e292422857 to your computer and use it in GitHub Desktop.
Save benbenbenbenbenben/3be07a64a4e292422857 to your computer and use it in GitHub Desktop.
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