harness test: arrayContains.js

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
This commit is contained in:
Rick Waldron 2017-06-23 11:08:11 -04:00
parent c9f3ab5610
commit 27f3452b33
2 changed files with 35 additions and 5 deletions

View File

@ -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;
}

View File

@ -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)');