123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- test("length is 1", () => {
- expect(Array.from).toHaveLength(1);
- });
- describe("normal behavior", () => {
- test("empty array", () => {
- var a = Array.from([]);
- expect(a instanceof Array).toBeTrue();
- expect(a).toHaveLength(0);
- });
- test("empty string", () => {
- var a = Array.from("");
- expect(a instanceof Array).toBeTrue();
- expect(a).toHaveLength(0);
- });
- test("non-empty array", () => {
- var a = Array.from([5, 8, 1]);
- expect(a instanceof Array).toBeTrue();
- expect(a).toHaveLength(3);
- expect(a[0]).toBe(5);
- expect(a[1]).toBe(8);
- expect(a[2]).toBe(1);
- });
- test("non-empty string", () => {
- var a = Array.from("what");
- expect(a instanceof Array).toBeTrue();
- expect(a).toHaveLength(4);
- expect(a[0]).toBe("w");
- expect(a[1]).toBe("h");
- expect(a[2]).toBe("a");
- expect(a[3]).toBe("t");
- });
- test("shallow array copy", () => {
- var a = [1, 2, 3];
- var b = Array.from([a]);
- expect(b instanceof Array).toBeTrue();
- expect(b).toHaveLength(1);
- b[0][0] = 4;
- expect(a[0]).toBe(4);
- });
- test("from iterator", () => {
- function rangeIterator(begin, end) {
- return {
- [Symbol.iterator]() {
- let value = begin - 1;
- return {
- next() {
- if (value < end) {
- value += 1;
- }
- return { value: value, done: value >= end };
- },
- };
- },
- };
- }
- var a = Array.from(rangeIterator(8, 10));
- expect(a instanceof Array).toBeTrue();
- expect(a).toHaveLength(2);
- expect(a[0]).toBe(8);
- expect(a[1]).toBe(9);
- });
- });
|