11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ciconst common = require('../../common'); 31cb0ef41Sopenharmony_ciconst assert = require('assert'); 41cb0ef41Sopenharmony_ci 51cb0ef41Sopenharmony_ci// Testing api calls for arrays 61cb0ef41Sopenharmony_ciconst test_array = require(`./build/${common.buildType}/test_array`); 71cb0ef41Sopenharmony_ci 81cb0ef41Sopenharmony_ciconst array = [ 91cb0ef41Sopenharmony_ci 1, 101cb0ef41Sopenharmony_ci 9, 111cb0ef41Sopenharmony_ci 48, 121cb0ef41Sopenharmony_ci 13493, 131cb0ef41Sopenharmony_ci 9459324, 141cb0ef41Sopenharmony_ci { name: 'hello' }, 151cb0ef41Sopenharmony_ci [ 161cb0ef41Sopenharmony_ci 'world', 171cb0ef41Sopenharmony_ci 'node', 181cb0ef41Sopenharmony_ci 'abi', 191cb0ef41Sopenharmony_ci ], 201cb0ef41Sopenharmony_ci]; 211cb0ef41Sopenharmony_ci 221cb0ef41Sopenharmony_ciassert.throws( 231cb0ef41Sopenharmony_ci () => { 241cb0ef41Sopenharmony_ci test_array.TestGetElement(array, array.length + 1); 251cb0ef41Sopenharmony_ci }, 261cb0ef41Sopenharmony_ci /^Error: assertion \(\(\(uint32_t\)index < length\)\) failed: Index out of bounds!$/, 271cb0ef41Sopenharmony_ci); 281cb0ef41Sopenharmony_ci 291cb0ef41Sopenharmony_ciassert.throws( 301cb0ef41Sopenharmony_ci () => { 311cb0ef41Sopenharmony_ci test_array.TestGetElement(array, -2); 321cb0ef41Sopenharmony_ci }, 331cb0ef41Sopenharmony_ci /^Error: assertion \(index >= 0\) failed: Invalid index\. Expects a positive integer\.$/, 341cb0ef41Sopenharmony_ci); 351cb0ef41Sopenharmony_ci 361cb0ef41Sopenharmony_ciarray.forEach(function(element, index) { 371cb0ef41Sopenharmony_ci assert.strictEqual(test_array.TestGetElement(array, index), element); 381cb0ef41Sopenharmony_ci}); 391cb0ef41Sopenharmony_ci 401cb0ef41Sopenharmony_ci 411cb0ef41Sopenharmony_ciassert.deepStrictEqual(test_array.New(array), array); 421cb0ef41Sopenharmony_ci 431cb0ef41Sopenharmony_ciassert(test_array.TestHasElement(array, 0)); 441cb0ef41Sopenharmony_ciassert.strictEqual(test_array.TestHasElement(array, array.length + 1), false); 451cb0ef41Sopenharmony_ci 461cb0ef41Sopenharmony_ciassert(test_array.NewWithLength(0) instanceof Array); 471cb0ef41Sopenharmony_ciassert(test_array.NewWithLength(1) instanceof Array); 481cb0ef41Sopenharmony_ci// Check max allowed length for an array 2^32 -1 491cb0ef41Sopenharmony_ciassert(test_array.NewWithLength(4294967295) instanceof Array); 501cb0ef41Sopenharmony_ci 511cb0ef41Sopenharmony_ci{ 521cb0ef41Sopenharmony_ci // Verify that array elements can be deleted. 531cb0ef41Sopenharmony_ci const arr = ['a', 'b', 'c', 'd']; 541cb0ef41Sopenharmony_ci 551cb0ef41Sopenharmony_ci assert.strictEqual(arr.length, 4); 561cb0ef41Sopenharmony_ci assert.strictEqual(2 in arr, true); 571cb0ef41Sopenharmony_ci assert.strictEqual(test_array.TestDeleteElement(arr, 2), true); 581cb0ef41Sopenharmony_ci assert.strictEqual(arr.length, 4); 591cb0ef41Sopenharmony_ci assert.strictEqual(2 in arr, false); 601cb0ef41Sopenharmony_ci} 61