mirror of https://github.com/tc39/test262.git
35 lines
1.0 KiB
JavaScript
35 lines
1.0 KiB
JavaScript
|
// Copyright (C) 2018 Peter Wong. All rights reserved.
|
||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||
|
/*---
|
||
|
description: Compare the values of an iterator with an array of expected values
|
||
|
---*/
|
||
|
|
||
|
// Example:
|
||
|
//
|
||
|
// function* numbers() {
|
||
|
// yield 1;
|
||
|
// yield 2;
|
||
|
// yield 3;
|
||
|
// }
|
||
|
//
|
||
|
// compareIterator(numbers(), [
|
||
|
// v => assert.sameValue(v, 1),
|
||
|
// v => assert.sameValue(v, 2),
|
||
|
// v => assert.sameValue(v, 3),
|
||
|
// ]);
|
||
|
//
|
||
|
assert.compareIterator = function(iter, validators, message) {
|
||
|
message = message || '';
|
||
|
|
||
|
var i, result;
|
||
|
for (i = 0; i < validators.length; i++) {
|
||
|
result = iter.next();
|
||
|
assert(!result.done, 'Expected ' + i + ' values(s). Instead iterator only produced ' + (i - 1) + ' value(s). ' + message);
|
||
|
validators[i](result.value);
|
||
|
}
|
||
|
|
||
|
result = iter.next();
|
||
|
assert(result.done, 'Expected only ' + i + ' values(s). Instead iterator produced more. ' + message);
|
||
|
assert.sameValue(result.value, undefined, 'Expected value of `undefined` when iterator completes. ' + message);
|
||
|
}
|