You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

129 lines
2.7 KiB

/* global QUnit */
import { Layers } from '../../../../src/core/Layers.js';
export default QUnit.module( 'Core', () => {
QUnit.module( 'Layers', () => {
// INSTANCING
QUnit.todo( 'Instancing', ( assert ) => {
assert.ok( false, 'everything\'s gonna be alright' );
} );
// PUBLIC STUFF
QUnit.test( 'set', ( assert ) => {
var a = new Layers();
for ( var i = 0; i < 31; i ++ ) {
a.set( i );
assert.strictEqual( a.mask, Math.pow( 2, i ), 'Mask has the expected value for channel: ' + i );
}
} );
QUnit.test( 'enable', ( assert ) => {
var a = new Layers();
a.set( 0 );
a.enable( 0 );
assert.strictEqual( a.mask, 1, 'Enable channel 0 with mask 0' );
a.set( 0 );
a.enable( 1 );
assert.strictEqual( a.mask, 3, 'Enable channel 1 with mask 0' );
a.set( 1 );
a.enable( 0 );
assert.strictEqual( a.mask, 3, 'Enable channel 0 with mask 1' );
a.set( 1 );
a.enable( 1 );
assert.strictEqual( a.mask, 2, 'Enable channel 1 with mask 1' );
} );
QUnit.test( 'toggle', ( assert ) => {
var a = new Layers();
a.set( 0 );
a.toggle( 0 );
assert.strictEqual( a.mask, 0, 'Toggle channel 0 with mask 0' );
a.set( 0 );
a.toggle( 1 );
assert.strictEqual( a.mask, 3, 'Toggle channel 1 with mask 0' );
a.set( 1 );
a.toggle( 0 );
assert.strictEqual( a.mask, 3, 'Toggle channel 0 with mask 1' );
a.set( 1 );
a.toggle( 1 );
assert.strictEqual( a.mask, 0, 'Toggle channel 1 with mask 1' );
} );
QUnit.test( 'disable', ( assert ) => {
var a = new Layers();
a.set( 0 );
a.disable( 0 );
assert.strictEqual( a.mask, 0, 'Disable channel 0 with mask 0' );
a.set( 0 );
a.disable( 1 );
assert.strictEqual( a.mask, 1, 'Disable channel 1 with mask 0' );
a.set( 1 );
a.disable( 0 );
assert.strictEqual( a.mask, 2, 'Disable channel 0 with mask 1' );
a.set( 1 );
a.disable( 1 );
assert.strictEqual( a.mask, 0, 'Disable channel 1 with mask 1' );
} );
QUnit.test( 'test', ( assert ) => {
var a = new Layers();
var b = new Layers();
assert.ok( a.test( b ), 'Start out true' );
a.set( 1 );
assert.notOk( a.test( b ), 'Set channel 1 in a and fail the QUnit.test' );
b.toggle( 1 );
assert.ok( a.test( b ), 'Toggle channel 1 in b and pass again' );
} );
QUnit.test( 'isEnabled', ( assert ) => {
var a = new Layers();
a.enable( 1 );
assert.ok( a.isEnabled( 1 ), 'Enable channel 1 and pass the QUnit.test' );
a.enable( 2 );
assert.ok( a.isEnabled( 2 ), 'Enable channel 2 and pass the QUnit.test' );
a.toggle( 1 );
assert.notOk( a.isEnabled( 1 ), 'Toggle channel 1 and fail the QUnit.test' );
assert.ok( a.isEnabled( 2 ), 'Channel 2 still enabled and pass the QUnit.test' );
} );
} );
} );