diff --git a/harness/arrayContains.js b/harness/arrayContains.js index 47af86b8f246ddf4737633a18e5a424c7a4bbfb0..4e84cb75d601776b043b70d884c2d84370a5c5cb 100644 --- a/harness/arrayContains.js +++ b/harness/arrayContains.js @@ -1,10 +1,16 @@ -//----------------------------------------------------------------------------- -function arrayContains(arr, expected) { +/** + * Verify that a subArray is contained within an array. + * + * @param {Array} array + * @param {Array} array + */ + +function arrayContains(array, subArray) { var found; - for (var i = 0; i < expected.length; i++) { + for (var i = 0; i < subArray.length; i++) { found = false; - for (var j = 0; j < arr.length; j++) { - if (expected[i] === arr[j]) { + for (var j = 0; j < array.length; j++) { + if (subArray[i] === array[j]) { found = true; break; } diff --git a/test/harness/arrayContains.js b/test/harness/arrayContains.js new file mode 100644 index 0000000000000000000000000000000000000000..3f83e30878d0040f44198d3a5d0d0250e02bfe4f --- /dev/null +++ b/test/harness/arrayContains.js @@ -0,0 +1,24 @@ +// Copyright (c) 2017 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: > + Assert that the contents of an array contains another array as a slice or sub-array +includes: [arrayContains.js] +---*/ + +const willMatch = [0, 1, 2]; + +assert(arrayContains([0, 1, 2, 3], willMatch)); +assert(arrayContains([null, 0, 1, 2, 3], willMatch)); +assert(arrayContains([undefined, 0, 1, 2, 3], willMatch)); +assert(arrayContains([false, 0, 1, 2, 3], willMatch)); +assert(arrayContains([NaN, 0, 1, 2, 3], willMatch)); + +const willNotMatch = [1, 0, 2]; + +assert(!arrayContains([1, /* intentional hole */, 2], willNotMatch), '[1, /* intentional hole */, 2], willNotMatch)'); +assert(!arrayContains([1, null, 2], willNotMatch), '[1, null, 2], willNotMatch)'); +assert(!arrayContains([1, undefined, 2], willNotMatch), '[1, undefined, 2], willNotMatch)'); +assert(!arrayContains([1, false, 2], willNotMatch), '[1, false, 2], willNotMatch)'); +assert(!arrayContains([1, NaN, 2], willNotMatch), '[1, NaN, 2], willNotMatch)');