mirror of
https://github.com/nunocoracao/blowfish.git
synced 2025-04-22 12:11:53 +02:00
138 lines
3.6 KiB
JavaScript
138 lines
3.6 KiB
JavaScript
|
/**
|
||
|
* Packer tests
|
||
|
*/
|
||
|
|
||
|
( function() {
|
||
|
|
||
|
QUnit.module('Packer');
|
||
|
|
||
|
var Packer = Packery.Packer;
|
||
|
var Rect = Packery.Rect;
|
||
|
|
||
|
QUnit.test( 'basics', function( assert ) {
|
||
|
assert.equal( typeof Packer === 'function', true, 'Packery is a function' );
|
||
|
});
|
||
|
|
||
|
QUnit.test( 'packing', function( assert ) {
|
||
|
var packr = new Packer( 30, 100 );
|
||
|
|
||
|
// 112
|
||
|
// 352
|
||
|
// 344
|
||
|
// xxx
|
||
|
// xxx
|
||
|
|
||
|
var rect1 = new Rect({ width: 20, height: 10 });
|
||
|
var rect2 = new Rect({ width: 10, height: 20 });
|
||
|
var rect3 = new Rect({ width: 10, height: 20 });
|
||
|
var rect4 = new Rect({ width: 20, height: 10 });
|
||
|
var rect5 = new Rect({ width: 10, height: 10 });
|
||
|
|
||
|
packr.pack( rect1 );
|
||
|
packr.pack( rect2 );
|
||
|
packr.pack( rect3 );
|
||
|
packr.pack( rect4 );
|
||
|
packr.pack( rect5 );
|
||
|
|
||
|
assert.equal( rect1.x, 0, 'rect1.x top left' );
|
||
|
assert.equal( rect1.y, 0, 'rect1.y top left' );
|
||
|
assert.equal( rect2.x, 20, 'rect2.x top right' );
|
||
|
assert.equal( rect2.y, 0, 'rect2.y top right' );
|
||
|
assert.equal( rect3.x, 0, 'rect3.x bottom left' );
|
||
|
assert.equal( rect3.y, 10, 'rect3.y bottom left' );
|
||
|
assert.equal( rect4.x, 10, 'rect4.x bottom right' );
|
||
|
assert.equal( rect4.y, 20, 'rect4.y bottom right' );
|
||
|
assert.equal( rect5.x, 10, 'rect5.x packed in center' );
|
||
|
assert.equal( rect5.y, 10, 'rect5.y packed in center' );
|
||
|
|
||
|
// bottom space is open
|
||
|
assert.equal( packr.spaces.length, 1, 'one space open' );
|
||
|
var space = packr.spaces[0];
|
||
|
assert.equal( space.width, 30, 'space.width' );
|
||
|
assert.equal( space.height, 70, 'space.height' );
|
||
|
assert.equal( space.x, 0, 'space.x' );
|
||
|
assert.equal( space.y, 30, 'space.y' );
|
||
|
|
||
|
});
|
||
|
QUnit.test( 'packing with a placed', function( assert ) {
|
||
|
var packr = new Packer( 30, 100 );
|
||
|
|
||
|
// 225
|
||
|
// 311
|
||
|
// 34x
|
||
|
// x4x
|
||
|
// xxx
|
||
|
// xxx
|
||
|
|
||
|
var rect1 = new Rect({
|
||
|
width: 20,
|
||
|
height: 10,
|
||
|
x: 10,
|
||
|
y: 10
|
||
|
});
|
||
|
var rect2 = new Rect({ width: 20, height: 10 });
|
||
|
var rect3 = new Rect({ width: 10, height: 20 });
|
||
|
var rect4 = new Rect({ width: 10, height: 20 });
|
||
|
var rect5 = new Rect({ width: 10, height: 10 });
|
||
|
|
||
|
packr.placed( rect1 );
|
||
|
packr.pack( rect2 );
|
||
|
packr.pack( rect3 );
|
||
|
packr.pack( rect4 );
|
||
|
packr.pack( rect5 );
|
||
|
|
||
|
assert.equal( rect2.x, 0, 'rect2.x top left' );
|
||
|
assert.equal( rect2.y, 0, 'rect2.y top left' );
|
||
|
assert.equal( rect3.x, 0, 'rect3.x left side' );
|
||
|
assert.equal( rect3.y, 10, 'rect3.y left side' );
|
||
|
assert.equal( rect4.x, 10, 'rect4.x bottom center' );
|
||
|
assert.equal( rect4.y, 20, 'rect4.y bottom center' );
|
||
|
assert.equal( rect5.x, 20, 'rect5.x packed in top right' );
|
||
|
assert.equal( rect5.y, 0, 'rect5.y packed in top right' );
|
||
|
|
||
|
assert.equal( packr.spaces.length, 3, '3 spaces left' );
|
||
|
|
||
|
});
|
||
|
|
||
|
QUnit.test( 'packing horizontal', function( assert ) {
|
||
|
|
||
|
function checkRect( rect, x, y ) {
|
||
|
assert.equal( rect.x, x, 'x: ' + x );
|
||
|
assert.equal( rect.y, y, 'y: ' + y );
|
||
|
}
|
||
|
|
||
|
var packr = new Packer( 100, 30, 'rightwardTopToBottom' );
|
||
|
|
||
|
// 133xx
|
||
|
// 154xx
|
||
|
// 224xx
|
||
|
|
||
|
var rect1 = new Rect({ width: 10, height: 20 });
|
||
|
var rect2 = new Rect({ width: 20, height: 10 });
|
||
|
var rect3 = new Rect({ width: 20, height: 10 });
|
||
|
var rect4 = new Rect({ width: 10, height: 20 });
|
||
|
var rect5 = new Rect({ width: 10, height: 10 });
|
||
|
|
||
|
packr.pack( rect1 );
|
||
|
packr.pack( rect2 );
|
||
|
packr.pack( rect3 );
|
||
|
packr.pack( rect4 );
|
||
|
packr.pack( rect5 );
|
||
|
|
||
|
checkRect( rect1, 0, 0 );
|
||
|
checkRect( rect2, 0, 20 );
|
||
|
checkRect( rect3, 10, 0 );
|
||
|
checkRect( rect4, 20, 10 );
|
||
|
checkRect( rect5, 10, 10 );
|
||
|
|
||
|
// bottom space is open
|
||
|
assert.equal( packr.spaces.length, 1, 'one space open' );
|
||
|
var space = packr.spaces[0];
|
||
|
assert.equal( space.width, 70, 'space.width' );
|
||
|
assert.equal( space.height, 30, 'space.height' );
|
||
|
checkRect( space, 30, 0 );
|
||
|
|
||
|
});
|
||
|
|
||
|
})();
|