InstancedBufferGeometry.tests.js 2.6 KB

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