InstancedBufferGeometry.tests.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /* global QUnit */
  2. import { InstancedBufferGeometry } from '../../../../src/core/InstancedBufferGeometry.js';
  3. import { BufferAttribute } from '../../../../src/core/BufferAttribute.js';
  4. export default QUnit.module( 'Core', () => {
  5. QUnit.module( 'InstancedBufferGeometry', () => {
  6. function createClonableMock() {
  7. return {
  8. callCount: 0,
  9. clone: function () {
  10. this.callCount ++;
  11. return this;
  12. }
  13. };
  14. }
  15. // INHERITANCE
  16. QUnit.todo( 'Extending', ( assert ) => {
  17. assert.ok( false, 'everything\'s gonna be alright' );
  18. } );
  19. // INSTANCING
  20. QUnit.todo( 'Instancing', ( assert ) => {
  21. assert.ok( false, 'everything\'s gonna be alright' );
  22. } );
  23. // PUBLIC STUFF
  24. QUnit.test( 'copy', ( assert ) => {
  25. var instanceMock1 = {};
  26. var instanceMock2 = {};
  27. var indexMock = createClonableMock();
  28. var defaultAttribute1 = new BufferAttribute( new Float32Array( [ 1 ] ) );
  29. var defaultAttribute2 = new BufferAttribute( new Float32Array( [ 2 ] ) );
  30. var instance = new InstancedBufferGeometry();
  31. instance.addGroup( 0, 10, instanceMock1 );
  32. instance.addGroup( 10, 5, instanceMock2 );
  33. instance.setIndex( indexMock );
  34. instance.setAttribute( 'defaultAttribute1', defaultAttribute1 );
  35. instance.setAttribute( 'defaultAttribute2', defaultAttribute2 );
  36. var copiedInstance = new InstancedBufferGeometry().copy( instance );
  37. assert.ok( copiedInstance instanceof InstancedBufferGeometry, 'the clone has the correct type' );
  38. assert.equal( copiedInstance.index, indexMock, 'index was copied' );
  39. assert.equal( copiedInstance.index.callCount, 1, 'index.clone was called once' );
  40. assert.ok( copiedInstance.attributes[ 'defaultAttribute1' ] instanceof BufferAttribute, 'attribute was created' );
  41. assert.deepEqual( copiedInstance.attributes[ 'defaultAttribute1' ].array, defaultAttribute1.array, 'attribute was copied' );
  42. assert.deepEqual( copiedInstance.attributes[ 'defaultAttribute2' ].array, defaultAttribute2.array, 'attribute was copied' );
  43. assert.equal( copiedInstance.groups[ 0 ].start, 0, 'group was copied' );
  44. assert.equal( copiedInstance.groups[ 0 ].count, 10, 'group was copied' );
  45. assert.equal( copiedInstance.groups[ 0 ].materialIndex, instanceMock1, 'group was copied' );
  46. assert.equal( copiedInstance.groups[ 1 ].start, 10, 'group was copied' );
  47. assert.equal( copiedInstance.groups[ 1 ].count, 5, 'group was copied' );
  48. assert.equal( copiedInstance.groups[ 1 ].materialIndex, instanceMock2, 'group was copied' );
  49. } );
  50. QUnit.todo( 'clone', ( assert ) => {
  51. assert.ok( false, 'everything\'s gonna be alright' );
  52. } );
  53. } );
  54. } );