import test from 'ava' const bindings = require('../index.node') test('should be able to create array', (t) => { const arr: number[] = bindings.testCreateArray() t.true(arr instanceof Array) t.true(Array.isArray(arr)) arr.push(1, 2, 3) t.deepEqual(arr, [1, 2, 3]) }) test('should be able to create array with length', (t) => { const len = 100 const arr: number[] = bindings.testCreateArrayWithLength(len) t.true(arr instanceof Array) t.true(Array.isArray(arr)) t.is(arr.length, len) }) test('should be able to set element', (t) => { const obj = {} const index = 29 const arr: unknown[] = [] bindings.testSetElement(arr, index, obj) t.is(arr[index], obj) }) test('should be able to use has_element', (t) => { const arr: any[] = [1, '3', undefined] const index = 29 arr[index] = {} t.true(bindings.testHasElement(arr, 0)) t.true(bindings.testHasElement(arr, 1)) t.true(bindings.testHasElement(arr, 2)) t.false(bindings.testHasElement(arr, 3)) t.false(bindings.testHasElement(arr, 10)) t.true(bindings.testHasElement(arr, index)) }) test('should be able to delete element', (t) => { const arr: number[] = [0, 1, 2, 3] for (const [index] of arr.entries()) { t.true(bindings.testDeleteElement(arr, index)) t.true(arr[index] === undefined) } })