import { describe, expect, test } from "vitest"; import { ConstArray, parse, serialize, sizeof, sizeofHead } from "../src"; import { expectDataViewEqual, filledDataView, sizedDataView } from "."; describe(ConstArray.name, () => { test('serialize, Number', () => { const expected = filledDataView([ 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]) let dv = sizedDataView(15) expect(() => serialize(dv, [1, 2], ConstArray(2), Number)).toThrow() dv = sizedDataView(sizeof(ConstArray(2), Number)) expect(16).toEqual(dv.byteLength) serialize(dv, [1, 2], ConstArray(2), Number) expectDataViewEqual(dv, expected) }) test('parse, Number', () => { const expected = [1, 2] const dv = filledDataView([ 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]) const actual = parse(dv, ConstArray(2), Number) expectDataViewEqual(actual, expected) }) test('sizeof', () => { expect(sizeofHead(ConstArray(2), Number)).toEqual(16) }) })