From 27f3452b33cb3f35c2d28d61a47a3add2007dec7 Mon Sep 17 00:00:00 2001 From: Rick Waldron <waldron.rick@gmail.com> Date: Fri, 23 Jun 2017 11:08:11 -0400 Subject: [PATCH] harness test: arrayContains.js Signed-off-by: Rick Waldron <waldron.rick@gmail.com> --- harness/arrayContains.js | 16 +++++++++++----- test/harness/arrayContains.js | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 test/harness/arrayContains.js diff --git a/harness/arrayContains.js b/harness/arrayContains.js index 47af86b8f2..4e84cb75d6 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 0000000000..3f83e30878 --- /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)'); -- GitLab