UNPKG

@spearwolf/twopoint5d

Version:

Create 2.5D realtime graphics and pixelart with WebGL and three.js

103 lines 3.97 kB
import { describe, expect, test } from 'vitest'; import { VertexAttributeDescriptor } from './VertexAttributeDescriptor.js'; describe('VertexAttributeDescriptor', () => { test('construct with components', () => { const descriptor = new VertexAttributeDescriptor('foo', { components: ['x', 'y', 'z'], type: 'float32', usage: 'dynamic', }); expect(descriptor).toBeDefined(); expect(descriptor.name).toBe('foo'); expect(descriptor.size).toBe(3); expect(descriptor.hasComponents).toBeTruthy(); expect(descriptor.components).toEqual(['x', 'y', 'z']); expect(descriptor.dataType).toBe('float32'); expect(descriptor.normalizedData).toBe(false); expect(descriptor.usageType).toBe('dynamic'); expect(descriptor.bufferName).toBe('dynamic_float32'); expect(descriptor.getterName).toBe('getFoo'); expect(descriptor.setterName).toBe('setFoo'); }); test('construct with getter and setter', () => { const descriptor = new VertexAttributeDescriptor('foo', { size: 3, getter: 'getCoords', setter: 'setCoords', }); expect(descriptor).toBeDefined(); expect(descriptor.name).toBe('foo'); expect(descriptor.getterName).toBe('getCoords'); expect(descriptor.setterName).toBe('setCoords'); }); test('construct without getter and setter', () => { const descriptor = new VertexAttributeDescriptor('foo', { components: ['x', 'y', 'z'], getter: undefined, setter: false, }); expect(descriptor).toBeDefined(); expect(descriptor.name).toBe('foo'); expect(descriptor.getterName).toBe(undefined); expect(descriptor.setterName).toBe(undefined); }); test('construct with size', () => { const descriptor = new VertexAttributeDescriptor('bar', { size: 2, type: 'uint16', normalized: true, usage: 'static', }); expect(descriptor).toBeDefined(); expect(descriptor.name).toBe('bar'); expect(descriptor.size).toBe(2); expect(descriptor.hasComponents).toBeFalsy(); expect(descriptor.components).toEqual([]); expect(descriptor.dataType).toBe('uint16'); expect(descriptor.normalizedData).toBe(true); expect(descriptor.usageType).toBe('static'); expect(descriptor.bufferName).toBe('static_uint16N'); }); test('default dataType is float32', () => { const descriptor = new VertexAttributeDescriptor('bar', { size: 1, }); expect(descriptor.dataType).toBe('float32'); }); test('default usageType is static', () => { const descriptor = new VertexAttributeDescriptor('foo', { size: 1, }); expect(descriptor.usageType).toBe('static'); }); test('autoTouch', () => { expect(new VertexAttributeDescriptor('foo', { size: 1, usage: 'static', }).autoTouch).toBe(false); expect(new VertexAttributeDescriptor('foo', { size: 1, usage: 'dynamic', }).autoTouch).toBe(true); expect(new VertexAttributeDescriptor('foo', { size: 1, usage: 'stream', }).autoTouch).toBe(true); expect(new VertexAttributeDescriptor('foo', { size: 1, usage: 'static', autoTouch: true, }).autoTouch).toBe(true); expect(new VertexAttributeDescriptor('foo', { size: 1, usage: 'dynamic', autoTouch: false, }).autoTouch).toBe(false); expect(new VertexAttributeDescriptor('foo', { size: 1, usage: 'stream', autoTouch: false, }).autoTouch).toBe(false); }); }); //# sourceMappingURL=VertexAttributeDescriptor.spec.js.map