summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Ficarra <git@michael.ficarra.me>2018-01-05 08:50:35 -0800
committerRick Waldron <waldron.rick@gmail.com>2018-01-05 16:59:34 -0500
commit02ceb624009d21e34355130b36a1350df75ea4cd (patch)
treee0b0cf3d7dd23cea55a4f954f9ac263b8abd3e91
parent1547e49c9510e06d361cbb94d6df73063d7e124f (diff)
downloadqtdeclarative-testsuites-02ceb624009d21e34355130b36a1350df75ea4cd.tar.gz
flatMap/flatten test improvements
-rw-r--r--test/built-ins/Array/prototype/flatMap/array-like-objects.js31
-rw-r--r--test/built-ins/Array/prototype/flatMap/bound-function-argument.js8
-rw-r--r--test/built-ins/Array/prototype/flatMap/depth-always-one.js20
-rw-r--r--test/built-ins/Array/prototype/flatMap/non-object-ctor-throws.js7
-rw-r--r--test/built-ins/Array/prototype/flatMap/thisArg-argument.js14
-rw-r--r--test/built-ins/Array/prototype/flatten/array-like-objects.js29
-rw-r--r--test/built-ins/Array/prototype/flatten/bound-function-call.js6
-rw-r--r--test/built-ins/Array/prototype/flatten/empty-array-elements.js11
-rw-r--r--test/built-ins/Array/prototype/flatten/empty-object-elements.js10
-rw-r--r--test/built-ins/Array/prototype/flatten/non-numeric-depth-should-not-throw.js12
-rw-r--r--test/built-ins/Array/prototype/flatten/non-object-ctor-throws.js7
-rw-r--r--test/built-ins/Array/prototype/flatten/null-undefined-elements.js12
-rw-r--r--test/built-ins/Array/prototype/flatten/symbol-object-create-null-depth-throws.js9
13 files changed, 80 insertions, 96 deletions
diff --git a/test/built-ins/Array/prototype/flatMap/array-like-objects.js b/test/built-ins/Array/prototype/flatMap/array-like-objects.js
index dcb9f5c9c..71da0aa6d 100644
--- a/test/built-ins/Array/prototype/flatMap/array-like-objects.js
+++ b/test/built-ins/Array/prototype/flatMap/array-like-objects.js
@@ -7,27 +7,28 @@ description: >
includes: [compareArray.js]
---*/
-function takesTwoParams(a, b) {
- return Array.prototype.flatMap.call(arguments, function(ele) { return ele * 2});
+function getArgumentsObject() {
+ return arguments;
}
-var actual = takesTwoParams(1,[2]);
-var expected = [2, 4];
+function double(e) {
+ return [e * 2];
+}
-assert(compareArray(actual, expected), 'arguments array like object');
+var a = getArgumentsObject(1, 2);
+var actual = [].flatMap.call(a, double);
+assert.compareArray(actual, [2, 4], 'arguments objects');
var a = {
- "length": 1,
- "0": 1
+ length: 1,
+ 0: 1,
};
-
-actual = Array.prototype.flatMap.call(a, function(ele) { return ele * 2});
-assert.sameValue(JSON.stringify(actual), JSON.stringify(['2']), 'array like objects');
+var actual = [].flatMap.call(a, double);
+assert.compareArray(actual, [2], 'array-like objects');
var a = {
- "length": undefined,
- "0": 1
+ length: void 0,
+ 0: 1,
};
-
-actual = Array.prototype.flatMap.call(a, function(ele) { return ele * 2});
-assert.sameValue(JSON.stringify(actual), JSON.stringify([]), 'array like objects');
+var actual = [].flatMap.call(a, double);
+assert.compareArray(actual, [], 'array-like objects; undefined length');
diff --git a/test/built-ins/Array/prototype/flatMap/bound-function-argument.js b/test/built-ins/Array/prototype/flatMap/bound-function-argument.js
index b85b9aaa3..ef6762656 100644
--- a/test/built-ins/Array/prototype/flatMap/bound-function-argument.js
+++ b/test/built-ins/Array/prototype/flatMap/bound-function-argument.js
@@ -3,11 +3,9 @@
/*---
esid: sec-array.prototype.flatMap
description: >
- Behavior when array is depth more than 1
+ Behavior when given a bound function
includes: [compareArray.js]
---*/
-var a = [void 0,[void 0]];
-var flattenMap = [].flatMap.bind(a, function() {});
-
-assert.compareArray(a.flatMap(flattenMap), [undefined, undefined, undefined, undefined]);
+var a = [0, 0];
+assert.compareArray(a.flatMap(function(){ return this; }.bind([1, 2])), [1, 2, 1, 2]);
diff --git a/test/built-ins/Array/prototype/flatMap/depth-always-one.js b/test/built-ins/Array/prototype/flatMap/depth-always-one.js
index 624392c2d..f22fe9706 100644
--- a/test/built-ins/Array/prototype/flatMap/depth-always-one.js
+++ b/test/built-ins/Array/prototype/flatMap/depth-always-one.js
@@ -7,18 +7,10 @@ description: >
includes: [compareArray.js]
---*/
-assert(compareArray([1, [2]].flatMap(function(ele) {
- return ele * 2;
-}), [2, 4]), 'array depth is 1');
+assert.compareArray([1, 2].flatMap(function(e) {
+ return [e, e * 2];
+}), [1, 2, 2, 4], 'array depth is 1');
-assert(compareArray([1, [2], [[3]]].flatMap(function(ele) {
- return ele * 2;
-}), [2, 4, 6]), 'array depth is more than 1');
-
-var actual = [1, [2], [3, [3]]].flatMap(function(ele) {
- return ele * 2;
-});
-
-assert.sameValue(actual[0], 2);
-assert.sameValue(actual[1], 4);
-assert(isNaN(actual[2]));
+assert.compareArray([1, 2, 3].flatMap(function(ele) {
+ return [[ele * 2]];
+}), [[2], [4], [6]], 'array depth is more than 1');
diff --git a/test/built-ins/Array/prototype/flatMap/non-object-ctor-throws.js b/test/built-ins/Array/prototype/flatMap/non-object-ctor-throws.js
index 962bd16fb..ccbb0a628 100644
--- a/test/built-ins/Array/prototype/flatMap/non-object-ctor-throws.js
+++ b/test/built-ins/Array/prototype/flatMap/non-object-ctor-throws.js
@@ -8,25 +8,24 @@ description: >
---*/
var a = [];
-
a.constructor = null;
assert.throws(TypeError, function() {
a.flatMap();
}, 'null value');
-a = [];
+var a = [];
a.constructor = 1;
assert.throws(TypeError, function() {
a.flatMap();
}, 'number value');
-a = [];
+var a = [];
a.constructor = 'string';
assert.throws(TypeError, function() {
a.flatMap();
}, 'string value');
-a = [];
+var a = [];
a.constructor = true;
assert.throws(TypeError, function() {
a.flatMap();
diff --git a/test/built-ins/Array/prototype/flatMap/thisArg-argument.js b/test/built-ins/Array/prototype/flatMap/thisArg-argument.js
index 097ec0c87..a2217e6fb 100644
--- a/test/built-ins/Array/prototype/flatMap/thisArg-argument.js
+++ b/test/built-ins/Array/prototype/flatMap/thisArg-argument.js
@@ -10,11 +10,11 @@ includes: [compareArray.js]
"use strict";
-var a;
+var a = {};
-assert(compareArray([1].flatMap(function() { return this}, "TestString"), ["TestString"]));
-assert(compareArray([1].flatMap(function() { return this}, 1), [1]));
-assert(compareArray([1].flatMap(function() { return this}, null), [null]));
-assert(compareArray([1].flatMap(function() { return this}, true), [true]));
-assert(compareArray([1].flatMap(function() { return this}, a = {}), [a]));
-assert(compareArray([1].flatMap(function() { return this}, void 0), [undefined]));
+assert(compareArray([1].flatMap(function() { return [this]; }, "TestString"), ["TestString"]));
+assert(compareArray([1].flatMap(function() { return [this]; }, 1), [1]));
+assert(compareArray([1].flatMap(function() { return [this]; }, null), [null]));
+assert(compareArray([1].flatMap(function() { return [this]; }, true), [true]));
+assert(compareArray([1].flatMap(function() { return [this]; }, a), [a]));
+assert(compareArray([1].flatMap(function() { return [this]; }, void 0), [undefined]));
diff --git a/test/built-ins/Array/prototype/flatten/array-like-objects.js b/test/built-ins/Array/prototype/flatten/array-like-objects.js
index d4a210444..bda75f378 100644
--- a/test/built-ins/Array/prototype/flatten/array-like-objects.js
+++ b/test/built-ins/Array/prototype/flatten/array-like-objects.js
@@ -7,25 +7,24 @@ description: >
includes: [compareArray.js]
---*/
-function takesTwoParams(a, b) {
- return Array.prototype.flatten.call(arguments);
+function getArgumentsObject() {
+ return arguments;
}
-var actual = takesTwoParams(1,[2]);
-var expected = [1, 2];
-
-assert(compareArray(actual, expected), 'arguments array like object');
+var a = getArgumentsObject([1], [2]);
+var actual = [].flatten.call(a);
+assert.compareArray(actual, [1, 2], 'arguments objects');
var a = {
- "length": 1,
- "0": 'a'
+ length: 1,
+ 0: [1],
};
+var actual = [].flatten.call(a);
+assert.compareArray(actual, [1], 'array-like objects');
-actual = Array.prototype.flatten.call(a);
-assert.sameValue(JSON.stringify(actual), JSON.stringify(['a']), 'array like objects');
-
-a = {
- "length": undefined,
- "0": 'a'
+var a = {
+ length: undefined,
+ 0: [1],
};
-assert.sameValue(JSON.stringify(actual), JSON.stringify([]), 'array like objects undefined length');
+var actual = [].flatten.call(a);
+assert.compareArray(actual, [], 'array-like objects; undefined length');
diff --git a/test/built-ins/Array/prototype/flatten/bound-function-call.js b/test/built-ins/Array/prototype/flatten/bound-function-call.js
index e456ba031..16e830cd7 100644
--- a/test/built-ins/Array/prototype/flatten/bound-function-call.js
+++ b/test/built-ins/Array/prototype/flatten/bound-function-call.js
@@ -7,7 +7,7 @@ description: >
includes: [compareArray.js]
---*/
-var a = [1,[1]];
-var flattenIt = [].flatten.bind(a);
+var a = [[0],[1]];
+var actual = [].flatten.bind(a)();
-assert(compareArray(flattenIt(), [1, 1]), 'bound functions');
+assert.compareArray(actual, [0, 1], 'bound flatten');
diff --git a/test/built-ins/Array/prototype/flatten/empty-array-elements.js b/test/built-ins/Array/prototype/flatten/empty-array-elements.js
index ebcf78586..9fa2b782b 100644
--- a/test/built-ins/Array/prototype/flatten/empty-array-elements.js
+++ b/test/built-ins/Array/prototype/flatten/empty-array-elements.js
@@ -7,9 +7,8 @@ description: >
includes: [compareArray.js]
---*/
-var a;
-assert(compareArray([].flatten([[]]), []));
-assert(compareArray(Array.prototype.flatten.call([[], []]), []));
-assert(compareArray(Array.prototype.flatten.call([[], [1]]), [1]));
-assert(compareArray(Array.prototype.flatten.call([[], [1, a = []]]), [1, a]));
-assert.sameValue(JSON.stringify(Array.prototype.flatten.call([{}, []])), JSON.stringify([{}]));
+var a = {};
+assert.compareArray([].flatten(), []);
+assert.compareArray([[], []].flatten(), []);
+assert.compareArray([[], [1]].flatten(), [1]);
+assert.compareArray([[], [1, a]].flatten(), [1, a]);
diff --git a/test/built-ins/Array/prototype/flatten/empty-object-elements.js b/test/built-ins/Array/prototype/flatten/empty-object-elements.js
index 6bc6086c8..a3fb3c809 100644
--- a/test/built-ins/Array/prototype/flatten/empty-object-elements.js
+++ b/test/built-ins/Array/prototype/flatten/empty-object-elements.js
@@ -6,7 +6,9 @@ description: >
arrays with empty object elements
---*/
-assert.sameValue(JSON.stringify(Array.prototype.flatten.call([{}])), JSON.stringify([{}]));
-assert.sameValue(JSON.stringify(Array.prototype.flatten.call([{}, [{}]])), JSON.stringify([{}, {}]));
-assert.sameValue(JSON.stringify(Array.prototype.flatten.call([[{null: {}}], [{}]])), JSON.stringify([{null: {}}, {}]));
-assert.sameValue(JSON.stringify(Array.prototype.flatten.call([[{null: null}], [{}]])), JSON.stringify([{null: null}, {}]));
+var a = {}, b = {};
+
+assert.compareArrays([a].flatten(), [a]);
+assert.compareArrays([a, [b]].flatten(), [a, b]);
+assert.compareArrays([[a], b].flatten(), [a, b]);
+assert.compareArrays([[a], [b]].flatten(), [a, b]);
diff --git a/test/built-ins/Array/prototype/flatten/non-numeric-depth-should-not-throw.js b/test/built-ins/Array/prototype/flatten/non-numeric-depth-should-not-throw.js
index 52f089246..b43925ee1 100644
--- a/test/built-ins/Array/prototype/flatten/non-numeric-depth-should-not-throw.js
+++ b/test/built-ins/Array/prototype/flatten/non-numeric-depth-should-not-throw.js
@@ -16,27 +16,27 @@ var actual = a.flatten(depthNum);
assert(compareArray(actual, expected), 'non integral string depthNum');
// object type depthNum is converted to 0
-depthNum = {};
+var depthNum = {};
var actual = a.flatten(depthNum);
assert(compareArray(actual, expected), 'object type depthNum');
// negative infinity depthNum is converted to 0
-depthNum = Number.NEGATIVE_INFINITY;
+var depthNum = Number.NEGATIVE_INFINITY;
var actual = a.flatten(depthNum);
assert(compareArray(actual, expected), 'negative infinity depthNum');
// positive zero depthNum is converted to 0
-depthNum = +0;
+var depthNum = +0;
var actual = a.flatten(depthNum);
assert(compareArray(actual, expected), 'positive zero depthNum');
// negative zero depthNum is converted to 0
-depthNum = -0;
+var depthNum = -0;
var actual = a.flatten(depthNum);
assert(compareArray(actual, expected), 'negative zero depthNum');
// integral string depthNum is converted to an integer
-depthNum = '1';
+var depthNum = '1';
var actual = a.flatten(depthNum);
-expected = [1, 2]
+var expected = [1, 2]
assert(compareArray(actual, expected), 'integral string depthNum');
diff --git a/test/built-ins/Array/prototype/flatten/non-object-ctor-throws.js b/test/built-ins/Array/prototype/flatten/non-object-ctor-throws.js
index 853ee8cd7..633f50750 100644
--- a/test/built-ins/Array/prototype/flatten/non-object-ctor-throws.js
+++ b/test/built-ins/Array/prototype/flatten/non-object-ctor-throws.js
@@ -8,25 +8,24 @@ description: >
---*/
var a = [];
-
a.constructor = null;
assert.throws(TypeError, function() {
a.flatten();
}, 'null value');
-a = [];
+var a = [];
a.constructor = 1;
assert.throws(TypeError, function() {
a.flatten();
}, 'number value');
-a = [];
+var a = [];
a.constructor = 'string';
assert.throws(TypeError, function() {
a.flatten();
}, 'string value');
-a = [];
+var a = [];
a.constructor = true;
assert.throws(TypeError, function() {
a.flatten();
diff --git a/test/built-ins/Array/prototype/flatten/null-undefined-elements.js b/test/built-ins/Array/prototype/flatten/null-undefined-elements.js
index 247be9a8a..3ac425002 100644
--- a/test/built-ins/Array/prototype/flatten/null-undefined-elements.js
+++ b/test/built-ins/Array/prototype/flatten/null-undefined-elements.js
@@ -6,10 +6,10 @@ description: >
arrays with null, and undefined
includes: [compareArray.js]
---*/
-var a;
+var a = [void 0];
-assert(compareArray(Array.prototype.flatten.call([1, null, void 0]), [1, null, undefined]));
-assert(compareArray(Array.prototype.flatten.call([1,[null, void 0]]), [1, null, undefined]));
-assert(compareArray(Array.prototype.flatten.call([[null, void 0], [null, void 0]]), [null, undefined, null, undefined]));
-assert(compareArray(Array.prototype.flatten.call([1,[null, a = [void 0]]], 1), [1, null, a]));
-assert(compareArray(Array.prototype.flatten.call([1,[null, [void 0]]], 2), [1, null, undefined]));
+assert(compareArray([1, null, void 0].flatten(), [1, null, undefined]));
+assert(compareArray([1,[null, void 0]].flatten(), [1, null, undefined]));
+assert(compareArray([[null, void 0], [null, void 0]].flatten(), [null, undefined, null, undefined]));
+assert(compareArray([1,[null, a]].flatten(1), [1, null, a]));
+assert(compareArray([1,[null, a]].flatten(2), [1, null, undefined]));
diff --git a/test/built-ins/Array/prototype/flatten/symbol-object-create-null-depth-throws.js b/test/built-ins/Array/prototype/flatten/symbol-object-create-null-depth-throws.js
index b12046925..38cfd6562 100644
--- a/test/built-ins/Array/prototype/flatten/symbol-object-create-null-depth-throws.js
+++ b/test/built-ins/Array/prototype/flatten/symbol-object-create-null-depth-throws.js
@@ -6,16 +6,11 @@ description: >
if the argument is a Symbol or Object null, it throws exception
---*/
-var a = [];
-var depthNum = Symbol();
-
assert.throws(TypeError, function() {
- a.flatten(depthNum);
+ [].flatten(Symbol());
}, 'symbol value');
-depthNum = Object.create(null);
-
assert.throws(TypeError, function() {
- a.flatten(depthNum);
+ [].flatten(Object.create(null));
}, 'object create null');