@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
50 lines (40 loc) • 1.85 kB
JavaScript
;
var inspect = require('object-inspect');
// var IsDetachedBuffer = require('es-abstract/2023/IsDetachedBuffer');
var forEach = require('for-each');
var availableTypedArrays = require('available-typed-arrays')();
var v = require('es-value-fixtures');
module.exports = function runTests(slice, t) {
forEach(v.primitives.concat(v.objects), function (nonTA) {
t['throws'](
function () { slice(nonTA); },
TypeError,
inspect(nonTA) + ' is not a Typed Array'
);
});
t.test('Typed Arrays', { skip: availableTypedArrays.length === 0 }, function (st) {
forEach(availableTypedArrays, function (name) {
st.test(name, function (s2t) {
var TA = global[name];
var isBigInt = name.slice(0, 3) === 'Big';
var ta = new TA(isBigInt ? [BigInt(1), BigInt(2), BigInt(3)] : [1, 2, 3]);
var copy = slice(ta);
s2t.notEqual(copy, ta, 'returns a new instance when sliced with no args');
s2t.ok(copy instanceof TA, 'returns an instance of the same type when sliced with no args');
s2t.deepEqual(copy, ta, 'returns a new instance with the same values when sliced with no args');
s2t.notEqual(copy.buffer, ta.buffer, 'the new instance has a different buffer than the original when sliced with no args');
var subset = slice(ta, 1);
s2t.notEqual(subset, ta, 'returns a new instance when sliced with a start index');
s2t.ok(copy instanceof TA, 'returns an instance of the same type when sliced with a start index');
s2t.deepEqual(
subset,
new TA(isBigInt ? [BigInt(2), BigInt(3)] : [2, 3]),
'returns a new instance with the expected subset of values when sliced with a start index'
);
s2t.notEqual(copy.buffer, ta.buffer, 'the new instance has a different buffer than the original when sliced with a start index');
s2t.end();
});
});
return st.end();
});
};