Skip to content

Commit

Permalink
Addressed relevant review comment from .at method tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
ioannad authored and ptomato committed Jun 26, 2024
1 parent 3d953f2 commit efa60b3
Show file tree
Hide file tree
Showing 6 changed files with 582 additions and 607 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,105 +14,100 @@ function ArrayEntriesHelper(ta) {
return Array.prototype.entries.call(ta);
}

function EntriesGrowMidIteration() {
// Orig. array: [0, 2, 4, 6]
// [0, 2, 4, 6] << fixedLength
// [4, 6] << fixedLengthWithOffset
// [0, 2, 4, 6, ...] << lengthTracking
// [4, 6, ...] << lengthTrackingWithOffset
// Orig. array: [0, 2, 4, 6]
// [0, 2, 4, 6] << fixedLength
// [4, 6] << fixedLengthWithOffset
// [0, 2, 4, 6, ...] << lengthTracking
// [4, 6, ...] << lengthTrackingWithOffset

// Iterating with entries() (the 4 loops below).
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLength = new ctor(rab, 0, 4);
// The fixed length array is not affected by resizing.
TestIterationAndResize(ArrayEntriesHelper(fixedLength), [
[
0,
0
],
[
1,
2
],
[
2,
4
],
[
3,
6
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLengthWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT, 2);
// The fixed length array is not affected by resizing.
TestIterationAndResize(ArrayEntriesHelper(fixedLengthWithOffset), [
[
0,
4
],
[
1,
6
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTracking = new ctor(rab, 0);
TestIterationAndResize(ArrayEntriesHelper(lengthTracking), [
[
0,
0
],
[
1,
2
],
[
2,
4
],
[
3,
6
],
[
4,
0
],
[
5,
0
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTrackingWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT);
TestIterationAndResize(ArrayEntriesHelper(lengthTrackingWithOffset), [
[
0,
4
],
[
1,
6
],
[
2,
0
],
[
3,
0
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}
// Iterating with entries() (the 4 loops below).
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLength = new ctor(rab, 0, 4);
// The fixed length array is not affected by resizing.
TestIterationAndResize(ArrayEntriesHelper(fixedLength), [
[
0,
0
],
[
1,
2
],
[
2,
4
],
[
3,
6
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLengthWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT, 2);
// The fixed length array is not affected by resizing.
TestIterationAndResize(ArrayEntriesHelper(fixedLengthWithOffset), [
[
0,
4
],
[
1,
6
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTracking = new ctor(rab, 0);
TestIterationAndResize(ArrayEntriesHelper(lengthTracking), [
[
0,
0
],
[
1,
2
],
[
2,
4
],
[
3,
6
],
[
4,
0
],
[
5,
0
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTrackingWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT);
TestIterationAndResize(ArrayEntriesHelper(lengthTrackingWithOffset), [
[
0,
4
],
[
1,
6
],
[
2,
0
],
[
3,
0
]
], rab, 2, 6 * ctor.BYTES_PER_ELEMENT);
}

EntriesGrowMidIteration();

Original file line number Diff line number Diff line change
Expand Up @@ -14,63 +14,59 @@ function ArrayEntriesHelper(ta) {
return Array.prototype.entries.call(ta);
}

function EntriesShrinkMidIteration() {
// Orig. array: [0, 2, 4, 6]
// [0, 2, 4, 6] << fixedLength
// [4, 6] << fixedLengthWithOffset
// [0, 2, 4, 6, ...] << lengthTracking
// [4, 6, ...] << lengthTrackingWithOffset
// Iterating with entries() (the 4 loops below).
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLength = new ctor(rab, 0, 4);
// Orig. array: [0, 2, 4, 6]
// [0, 2, 4, 6] << fixedLength
// [4, 6] << fixedLengthWithOffset
// [0, 2, 4, 6, ...] << lengthTracking
// [4, 6, ...] << lengthTrackingWithOffset
// Iterating with entries() (the 4 loops below).
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLength = new ctor(rab, 0, 4);

// The fixed length array goes out of bounds when the RAB is resized.
assert.throws(TypeError, () => {
TestIterationAndResize(ArrayEntriesHelper(fixedLength), null, rab, 2, 3 * ctor.BYTES_PER_ELEMENT);
});
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLengthWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT, 2);

// The fixed length array goes out of bounds when the RAB is resized.
assert.throws(TypeError, () => {
TestIterationAndResize(ArrayEntriesHelper(fixedLengthWithOffset), null, rab, 1, 3 * ctor.BYTES_PER_ELEMENT);
});
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTracking = new ctor(rab, 0);
TestIterationAndResize(ArrayEntriesHelper(lengthTracking), [
[
0,
0
],
[
1,
2
],
[
2,
4
]
], rab, 2, 3 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTrackingWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT);
TestIterationAndResize(ArrayEntriesHelper(lengthTrackingWithOffset), [
[
0,
4
],
[
1,
6
]
], rab, 2, 3 * ctor.BYTES_PER_ELEMENT);
}
// The fixed length array goes out of bounds when the RAB is resized.
assert.throws(TypeError, () => {
TestIterationAndResize(ArrayEntriesHelper(fixedLength), null, rab, 2, 3 * ctor.BYTES_PER_ELEMENT);
});
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const fixedLengthWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT, 2);

EntriesShrinkMidIteration();
// The fixed length array goes out of bounds when the RAB is resized.
assert.throws(TypeError, () => {
TestIterationAndResize(ArrayEntriesHelper(fixedLengthWithOffset), null, rab, 1, 3 * ctor.BYTES_PER_ELEMENT);
});
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTracking = new ctor(rab, 0);
TestIterationAndResize(ArrayEntriesHelper(lengthTracking), [
[
0,
0
],
[
1,
2
],
[
2,
4
]
], rab, 2, 3 * ctor.BYTES_PER_ELEMENT);
}
for (let ctor of ctors) {
const rab = CreateRabForTest(ctor);
const lengthTrackingWithOffset = new ctor(rab, 2 * ctor.BYTES_PER_ELEMENT);
TestIterationAndResize(ArrayEntriesHelper(lengthTrackingWithOffset), [
[
0,
4
],
[
1,
6
]
], rab, 2, 3 * ctor.BYTES_PER_ELEMENT);
}
Loading

0 comments on commit efa60b3

Please sign in to comment.