aboutsummaryrefslogtreecommitdiff
path: root/node_modules/es6-iterator/test
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/es6-iterator/test
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/es6-iterator/test')
-rw-r--r--node_modules/es6-iterator/test/#/chain.js23
-rw-r--r--node_modules/es6-iterator/test/.eslintrc.json5
-rw-r--r--node_modules/es6-iterator/test/array.js67
-rw-r--r--node_modules/es6-iterator/test/for-of.js42
-rw-r--r--node_modules/es6-iterator/test/get.js27
-rw-r--r--node_modules/es6-iterator/test/index.js99
-rw-r--r--node_modules/es6-iterator/test/is-iterable.js23
-rw-r--r--node_modules/es6-iterator/test/string.js23
-rw-r--r--node_modules/es6-iterator/test/valid-iterable.js28
9 files changed, 337 insertions, 0 deletions
diff --git a/node_modules/es6-iterator/test/#/chain.js b/node_modules/es6-iterator/test/#/chain.js
new file mode 100644
index 00000000..457356f2
--- /dev/null
+++ b/node_modules/es6-iterator/test/#/chain.js
@@ -0,0 +1,23 @@
+"use strict";
+
+var Iterator = require("../../");
+
+module.exports = function (t, a) {
+ var i1 = new Iterator(["raz", "dwa", "trzy"])
+ , i2 = new Iterator(["cztery", "pięć", "sześć"])
+ , i3 = new Iterator(["siedem", "osiem", "dziewięć"])
+
+ , iterator = t.call(i1, i2, i3);
+
+ a.deep(iterator.next(), { done: false, value: "raz" }, "#1");
+ a.deep(iterator.next(), { done: false, value: "dwa" }, "#2");
+ a.deep(iterator.next(), { done: false, value: "trzy" }, "#3");
+ a.deep(iterator.next(), { done: false, value: "cztery" }, "#4");
+ a.deep(iterator.next(), { done: false, value: "pięć" }, "#5");
+ a.deep(iterator.next(), { done: false, value: "sześć" }, "#6");
+ a.deep(iterator.next(), { done: false, value: "siedem" }, "#7");
+ a.deep(iterator.next(), { done: false, value: "osiem" }, "#8");
+ a.deep(iterator.next(), { done: false, value: "dziewięć" }, "#9");
+ a.deep(iterator.next(), { done: true, value: undefined }, "Done #1");
+ a.deep(iterator.next(), { done: true, value: undefined }, "Done #2");
+};
diff --git a/node_modules/es6-iterator/test/.eslintrc.json b/node_modules/es6-iterator/test/.eslintrc.json
new file mode 100644
index 00000000..99f0b655
--- /dev/null
+++ b/node_modules/es6-iterator/test/.eslintrc.json
@@ -0,0 +1,5 @@
+{
+ "rules": {
+ "id-length": "off"
+ }
+}
diff --git a/node_modules/es6-iterator/test/array.js b/node_modules/es6-iterator/test/array.js
new file mode 100644
index 00000000..447dfa73
--- /dev/null
+++ b/node_modules/es6-iterator/test/array.js
@@ -0,0 +1,67 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator;
+
+module.exports = function (T) {
+ return {
+ "Values": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
+
+ it = new T(x);
+ a(it[iteratorSymbol](), it, "@@iterator");
+ a.deep(it.next(), { done: false, value: "raz" }, "#1");
+ a.deep(it.next(), { done: false, value: "dwa" }, "#2");
+ x.splice(1, 0, "elo");
+ a.deep(it.next(), { done: false, value: "dwa" }, "Insert");
+ a.deep(it.next(), { done: false, value: "trzy" }, "#3");
+ a.deep(it.next(), { done: false, value: "cztery" }, "#4");
+ x.pop();
+ a.deep(it.next(), { done: false, value: "pięć" }, "#5");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ },
+ "Keys & Values": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
+
+ it = new T(x, "key+value");
+ a(it[iteratorSymbol](), it, "@@iterator");
+ a.deep(it.next(), { done: false, value: [0, "raz"] }, "#1");
+ a.deep(it.next(), { done: false, value: [1, "dwa"] }, "#2");
+ x.splice(1, 0, "elo");
+ a.deep(it.next(), { done: false, value: [2, "dwa"] }, "Insert");
+ a.deep(it.next(), { done: false, value: [3, "trzy"] }, "#3");
+ a.deep(it.next(), { done: false, value: [4, "cztery"] }, "#4");
+ x.pop();
+ a.deep(it.next(), { done: false, value: [5, "pięć"] }, "#5");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ },
+ "Keys": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
+
+ it = new T(x, "key");
+ a(it[iteratorSymbol](), it, "@@iterator");
+ a.deep(it.next(), { done: false, value: 0 }, "#1");
+ a.deep(it.next(), { done: false, value: 1 }, "#2");
+ x.splice(1, 0, "elo");
+ a.deep(it.next(), { done: false, value: 2 }, "Insert");
+ a.deep(it.next(), { done: false, value: 3 }, "#3");
+ a.deep(it.next(), { done: false, value: 4 }, "#4");
+ x.pop();
+ a.deep(it.next(), { done: false, value: 5 }, "#5");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ },
+ "Sparse": function (a) {
+ var x = new Array(6), it;
+
+ x[2] = "raz";
+ x[4] = "dwa";
+ it = new T(x);
+ a.deep(it.next(), { done: false, value: undefined }, "#1");
+ a.deep(it.next(), { done: false, value: undefined }, "#2");
+ a.deep(it.next(), { done: false, value: "raz" }, "#3");
+ a.deep(it.next(), { done: false, value: undefined }, "#4");
+ a.deep(it.next(), { done: false, value: "dwa" }, "#5");
+ a.deep(it.next(), { done: false, value: undefined }, "#6");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ }
+ };
+};
diff --git a/node_modules/es6-iterator/test/for-of.js b/node_modules/es6-iterator/test/for-of.js
new file mode 100644
index 00000000..9b47e979
--- /dev/null
+++ b/node_modules/es6-iterator/test/for-of.js
@@ -0,0 +1,42 @@
+"use strict";
+
+var ArrayIterator = require("../array")
+
+ , slice = Array.prototype.slice;
+
+module.exports = function (t, a) {
+ var i = 0, x = ["raz", "dwa", "trzy"], y = {}, called = 0;
+ t(x, function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#");
+ a(this, y, "Array: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ t((function () {
+ return arguments;
+}("raz", "dwa", "trzy")), function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "Arguments" + i + "#");
+ a(this, y, "Arguments: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ t(x = "foo", function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+ a(this, y, "Regular String: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ x = ["r", "💩", "z"];
+ t("r💩z", function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
+ a(this, y, "Unicode String: context: " + i++ + "#");
+ }, y);
+ i = 0;
+ t(new ArrayIterator(x), function () {
+ a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#");
+ a(this, y, "Iterator: context: " + i++ + "#");
+ }, y);
+
+ t(x = ["raz", "dwa", "trzy"], function (value, doBreak) {
+ ++called;
+ return doBreak();
+ });
+ a(called, 1, "Break");
+};
diff --git a/node_modules/es6-iterator/test/get.js b/node_modules/es6-iterator/test/get.js
new file mode 100644
index 00000000..c5947d3e
--- /dev/null
+++ b/node_modules/es6-iterator/test/get.js
@@ -0,0 +1,27 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator
+ , Iterator = require("../");
+
+module.exports = function (t, a) {
+ var iterator;
+ a.throws(function () {
+ t();
+}, TypeError, "Null");
+ a.throws(function () {
+ t({});
+}, TypeError, "Plain object");
+ a.throws(function () {
+ t({ length: 0 });
+}, TypeError, "Array-like");
+ iterator = {};
+ iterator[iteratorSymbol] = function () {
+ return new Iterator([]);
+};
+ a(t(iterator) instanceof Iterator, true, "Iterator");
+ a(String(t([])), "[object Array Iterator]", " Array");
+ a(String(t(function () {
+ return arguments;
+}())), "[object Array Iterator]", " Arguments");
+ a(String(t("foo")), "[object String Iterator]", "String");
+};
diff --git a/node_modules/es6-iterator/test/index.js b/node_modules/es6-iterator/test/index.js
new file mode 100644
index 00000000..48982185
--- /dev/null
+++ b/node_modules/es6-iterator/test/index.js
@@ -0,0 +1,99 @@
+"use strict";
+
+var ee = require("event-emitter")
+ , iteratorSymbol = require("es6-symbol").iterator;
+
+module.exports = function (T) {
+ return {
+ "": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć"], it, y, z;
+
+ it = new T(x);
+ a(it[iteratorSymbol](), it, "@@iterator");
+ y = it.next();
+ a.deep(y, { done: false, value: "raz" }, "#1");
+ z = it.next();
+ a.not(y, z, "Recreate result");
+ a.deep(z, { done: false, value: "dwa" }, "#2");
+ a.deep(it.next(), { done: false, value: "trzy" }, "#3");
+ a.deep(it.next(), { done: false, value: "cztery" }, "#4");
+ a.deep(it.next(), { done: false, value: "pięć" }, "#5");
+ a.deep(y = it.next(), { done: true, value: undefined }, "End");
+ a.not(y, it.next(), "Recreate result on dead");
+ },
+ "Emited": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć"], y, it;
+
+ y = ee();
+ it = new T(x, y);
+ a.deep(it.next(), { done: false, value: "raz" }, "#1");
+ a.deep(it.next(), { done: false, value: "dwa" }, "#2");
+ y.emit("_add", x.push("sześć") - 1);
+ a.deep(it.next(), { done: false, value: "trzy" }, "#3");
+ x.splice(1, 0, "półtora");
+ y.emit("_add", 1);
+ a.deep(it.next(), { done: false, value: "półtora" }, "Insert");
+ x.splice(5, 1);
+ y.emit("_delete", 5);
+ a.deep(it.next(), { done: false, value: "cztery" }, "#4");
+ a.deep(it.next(), { done: false, value: "sześć" }, "#5");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ },
+ "Emited #2": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], y, it;
+
+ y = ee();
+ it = new T(x, y);
+ a.deep(it.next(), { done: false, value: "raz" }, "#1");
+ a.deep(it.next(), { done: false, value: "dwa" }, "#2");
+ x.splice(1, 0, "półtora");
+ y.emit("_add", 1);
+ x.splice(1, 0, "1.25");
+ y.emit("_add", 1);
+ x.splice(0, 1);
+ y.emit("_delete", 0);
+ a.deep(it.next(), { done: false, value: "półtora" }, "Insert");
+ a.deep(it.next(), { done: false, value: "1.25" }, "Insert #2");
+ a.deep(it.next(), { done: false, value: "trzy" }, "#3");
+ a.deep(it.next(), { done: false, value: "cztery" }, "#4");
+ x.splice(5, 1);
+ y.emit("_delete", 5);
+ a.deep(it.next(), { done: false, value: "sześć" }, "#5");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ },
+ "Emited: Clear #1": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], y, it;
+
+ y = ee();
+ it = new T(x, y);
+ a.deep(it.next(), { done: false, value: "raz" }, "#1");
+ a.deep(it.next(), { done: false, value: "dwa" }, "#2");
+ x.length = 0;
+ y.emit("_clear");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ },
+ "Emited: Clear #2": function (a) {
+ var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], y, it;
+
+ y = ee();
+ it = new T(x, y);
+ a.deep(it.next(), { done: false, value: "raz" }, "#1");
+ a.deep(it.next(), { done: false, value: "dwa" }, "#2");
+ x.length = 0;
+ y.emit("_clear");
+ x.push("foo");
+ x.push("bar");
+ a.deep(it.next(), { done: false, value: "foo" }, "#3");
+ a.deep(it.next(), { done: false, value: "bar" }, "#4");
+ x.splice(1, 0, "półtora");
+ y.emit("_add", 1);
+ x.splice(1, 0, "1.25");
+ y.emit("_add", 1);
+ x.splice(0, 1);
+ y.emit("_delete", 0);
+ a.deep(it.next(), { done: false, value: "półtora" }, "Insert");
+ a.deep(it.next(), { done: false, value: "1.25" }, "Insert #2");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+ }
+ };
+};
diff --git a/node_modules/es6-iterator/test/is-iterable.js b/node_modules/es6-iterator/test/is-iterable.js
new file mode 100644
index 00000000..5787351a
--- /dev/null
+++ b/node_modules/es6-iterator/test/is-iterable.js
@@ -0,0 +1,23 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator
+ , Iterator = require("../");
+
+module.exports = function (t, a) {
+ var iterator;
+ a(t(), false, "Undefined");
+ a(t(123), false, "Number");
+ a(t({}), false, "Plain object");
+ a(t({ length: 0 }), false, "Array-like");
+ iterator = {};
+ iterator[iteratorSymbol] = function () {
+ return new Iterator([]);
+};
+ a(t(iterator), true, "Iterator");
+ a(t([]), true, "Array");
+ a(t("foo"), true, "String");
+ a(t(""), true, "Empty string");
+ a(t(function () {
+ return arguments;
+}()), true, "Arguments");
+};
diff --git a/node_modules/es6-iterator/test/string.js b/node_modules/es6-iterator/test/string.js
new file mode 100644
index 00000000..3f2a5b67
--- /dev/null
+++ b/node_modules/es6-iterator/test/string.js
@@ -0,0 +1,23 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator;
+
+module.exports = function (T, a) {
+ var it = new T("foobar");
+
+ a(it[iteratorSymbol](), it, "@@iterator");
+ a.deep(it.next(), { done: false, value: "f" }, "#1");
+ a.deep(it.next(), { done: false, value: "o" }, "#2");
+ a.deep(it.next(), { done: false, value: "o" }, "#3");
+ a.deep(it.next(), { done: false, value: "b" }, "#4");
+ a.deep(it.next(), { done: false, value: "a" }, "#5");
+ a.deep(it.next(), { done: false, value: "r" }, "#6");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+
+ a.h1("Outside of BMP");
+ it = new T("r💩z");
+ a.deep(it.next(), { done: false, value: "r" }, "#1");
+ a.deep(it.next(), { done: false, value: "💩" }, "#2");
+ a.deep(it.next(), { done: false, value: "z" }, "#3");
+ a.deep(it.next(), { done: true, value: undefined }, "End");
+};
diff --git a/node_modules/es6-iterator/test/valid-iterable.js b/node_modules/es6-iterator/test/valid-iterable.js
new file mode 100644
index 00000000..b8b2a8a6
--- /dev/null
+++ b/node_modules/es6-iterator/test/valid-iterable.js
@@ -0,0 +1,28 @@
+"use strict";
+
+var iteratorSymbol = require("es6-symbol").iterator
+ , Iterator = require("../");
+
+module.exports = function (t, a) {
+ var obj;
+ a.throws(function () {
+ t();
+}, TypeError, "Undefined");
+ a.throws(function () {
+ t({});
+}, TypeError, "Plain object");
+ a.throws(function () {
+ t({ length: 0 });
+}, TypeError, "Array-like");
+ obj = {};
+ obj[iteratorSymbol] = function () {
+ return new Iterator([]);
+};
+ a(t(obj), obj, "Iterator");
+ obj = [];
+ a(t(obj), obj, "Array");
+ obj = (function () {
+ return arguments;
+}());
+ a(t(obj), obj, "Arguments");
+};