DataUtils.tests.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /* global QUnit */
  2. import * as DataUtils from '../../../../src/extras/DataUtils.js';
  3. import { CONSOLE_LEVEL } from '../../utils/console-wrapper.js';
  4. export default QUnit.module( 'Extras', () => {
  5. QUnit.module( 'DataUtils', () => {
  6. // PUBLIC
  7. QUnit.test( 'toHalfFloat', ( assert ) => {
  8. assert.ok( DataUtils.toHalfFloat( 0 ) === 0, 'Passed!' );
  9. // suppress the following console message during testing
  10. // THREE.DataUtils.toHalfFloat(): Value out of range.
  11. console.level = CONSOLE_LEVEL.OFF;
  12. assert.ok( DataUtils.toHalfFloat( 100000 ) === 31743, 'Passed!' );
  13. assert.ok( DataUtils.toHalfFloat( - 100000 ) === 64511, 'Passed!' );
  14. console.level = CONSOLE_LEVEL.DEFAULT;
  15. assert.ok( DataUtils.toHalfFloat( 65504 ) === 31743, 'Passed!' );
  16. assert.ok( DataUtils.toHalfFloat( - 65504 ) === 64511, 'Passed!' );
  17. assert.ok( DataUtils.toHalfFloat( Math.PI ) === 16968, 'Passed!' );
  18. assert.ok( DataUtils.toHalfFloat( - Math.PI ) === 49736, 'Passed!' );
  19. } );
  20. QUnit.test( 'fromHalfFloat', ( assert ) => {
  21. assert.ok( DataUtils.fromHalfFloat( 0 ) === 0, 'Passed!' );
  22. assert.ok( DataUtils.fromHalfFloat( 31744 ) === Infinity, 'Passed!' );
  23. assert.ok( DataUtils.fromHalfFloat( 64512 ) === - Infinity, 'Passed!' );
  24. assert.ok( DataUtils.fromHalfFloat( 31743 ) === 65504, 'Passed!' );
  25. assert.ok( DataUtils.fromHalfFloat( 64511 ) === - 65504, 'Passed!' );
  26. assert.ok( DataUtils.fromHalfFloat( 16968 ) === 3.140625, 'Passed!' );
  27. assert.ok( DataUtils.fromHalfFloat( 49736 ) === - 3.140625, 'Passed!' );
  28. } );
  29. } );
  30. } );
粤ICP备19079148号