Layers.tests.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import { Layers } from '../../../../src/core/Layers.js';
  2. export default QUnit.module( 'Core', () => {
  3. QUnit.module( 'Layers', () => {
  4. // INSTANCING
  5. QUnit.test( 'Instancing', ( assert ) => {
  6. const object = new Layers();
  7. assert.ok( object, 'Can instantiate a Layers.' );
  8. } );
  9. // PUBLIC
  10. QUnit.test( 'set', ( assert ) => {
  11. const a = new Layers();
  12. for ( let i = 0; i < 31; i ++ ) {
  13. a.set( i );
  14. assert.strictEqual( a.mask, Math.pow( 2, i ), 'Mask has the expected value for channel: ' + i );
  15. }
  16. } );
  17. QUnit.test( 'enable', ( assert ) => {
  18. const a = new Layers();
  19. a.set( 0 );
  20. a.enable( 0 );
  21. assert.strictEqual( a.mask, 1, 'Enable channel 0 with mask 0' );
  22. a.set( 0 );
  23. a.enable( 1 );
  24. assert.strictEqual( a.mask, 3, 'Enable channel 1 with mask 0' );
  25. a.set( 1 );
  26. a.enable( 0 );
  27. assert.strictEqual( a.mask, 3, 'Enable channel 0 with mask 1' );
  28. a.set( 1 );
  29. a.enable( 1 );
  30. assert.strictEqual( a.mask, 2, 'Enable channel 1 with mask 1' );
  31. } );
  32. QUnit.test( 'toggle', ( assert ) => {
  33. const a = new Layers();
  34. a.set( 0 );
  35. a.toggle( 0 );
  36. assert.strictEqual( a.mask, 0, 'Toggle channel 0 with mask 0' );
  37. a.set( 0 );
  38. a.toggle( 1 );
  39. assert.strictEqual( a.mask, 3, 'Toggle channel 1 with mask 0' );
  40. a.set( 1 );
  41. a.toggle( 0 );
  42. assert.strictEqual( a.mask, 3, 'Toggle channel 0 with mask 1' );
  43. a.set( 1 );
  44. a.toggle( 1 );
  45. assert.strictEqual( a.mask, 0, 'Toggle channel 1 with mask 1' );
  46. } );
  47. QUnit.test( 'disable', ( assert ) => {
  48. const a = new Layers();
  49. a.set( 0 );
  50. a.disable( 0 );
  51. assert.strictEqual( a.mask, 0, 'Disable channel 0 with mask 0' );
  52. a.set( 0 );
  53. a.disable( 1 );
  54. assert.strictEqual( a.mask, 1, 'Disable channel 1 with mask 0' );
  55. a.set( 1 );
  56. a.disable( 0 );
  57. assert.strictEqual( a.mask, 2, 'Disable channel 0 with mask 1' );
  58. a.set( 1 );
  59. a.disable( 1 );
  60. assert.strictEqual( a.mask, 0, 'Disable channel 1 with mask 1' );
  61. } );
  62. QUnit.test( 'test', ( assert ) => {
  63. const a = new Layers();
  64. const b = new Layers();
  65. assert.ok( a.test( b ), 'Start out true' );
  66. a.set( 1 );
  67. assert.notOk( a.test( b ), 'Set channel 1 in a and fail the QUnit.test' );
  68. b.toggle( 1 );
  69. assert.ok( a.test( b ), 'Toggle channel 1 in b and pass again' );
  70. } );
  71. QUnit.test( 'isEnabled', ( assert ) => {
  72. const a = new Layers();
  73. a.enable( 1 );
  74. assert.ok( a.isEnabled( 1 ), 'Enable channel 1 and pass the QUnit.test' );
  75. a.enable( 2 );
  76. assert.ok( a.isEnabled( 2 ), 'Enable channel 2 and pass the QUnit.test' );
  77. a.toggle( 1 );
  78. assert.notOk( a.isEnabled( 1 ), 'Toggle channel 1 and fail the QUnit.test' );
  79. assert.ok( a.isEnabled( 2 ), 'Channel 2 still enabled and pass the QUnit.test' );
  80. } );
  81. } );
  82. } );
粤ICP备19079148号