123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- test("non-numeric primitives", () => {
- expect(+false).toBe(0);
- expect(-false).toBe(-0);
- expect(+true).toBe(1);
- expect(-true).toBe(-1);
- expect(+null).toBe(0);
- expect(-null).toBe(-0);
- expect(+undefined).toBeNaN();
- expect(-undefined).toBeNaN();
- });
- test("arrays", () => {
- expect(+[]).toBe(0);
- expect(-[]).toBe(-0);
- expect(+[,]).toBe(0);
- expect(-[,]).toBe(-0);
- expect(+[null]).toBe(0);
- expect(-[null]).toBe(-0);
- expect(+[undefined]).toBe(0);
- expect(-[undefined]).toBe(-0);
- expect(+[[[[[]]]]]).toBe(0);
- expect(-[[[[[]]]]]).toBe(-0);
- expect(+[[[[[42]]]]]).toBe(42);
- expect(-[[[[[42]]]]]).toBe(-42);
- expect(+[, , ,]).toBeNaN();
- expect(-[, , ,]).toBeNaN();
- expect(+[undefined, undefined]).toBeNaN();
- expect(-[undefined, undefined]).toBeNaN();
- expect(+[1, 2, 3]).toBeNaN();
- expect(-[1, 2, 3]).toBeNaN();
- expect(+[[[["foo"]]]]).toBeNaN();
- expect(-[[[["foo"]]]]).toBeNaN();
- });
- test("strings", () => {
- expect(+"").toBe(0);
- expect(-"").toBe(-0);
- expect(+"42").toBe(42);
- expect(-"42").toBe(-42);
- expect(+"1.23").toBe(1.23);
- expect(-"1.23").toBe(-1.23);
- expect(+"foo").toBeNaN();
- expect(-"foo").toBeNaN();
- });
- test("numbers", () => {
- expect(+42).toBe(42);
- expect(-42).toBe(-42);
- expect(+1.23).toBe(1.23);
- expect(-1.23).toBe(-1.23);
- });
- test("infinity", () => {
- expect(+"Infinity").toBe(Infinity);
- expect(+"+Infinity").toBe(Infinity);
- expect(+"-Infinity").toBe(-Infinity);
- expect(-"Infinity").toBe(-Infinity);
- expect(-"+Infinity").toBe(-Infinity);
- expect(-"-Infinity").toBe(Infinity);
- });
- test("space and space-like escapes", () => {
- expect(+" \r \t \n ").toBe(0);
- expect(+" \n \t Infinity \r ").toBe(Infinity);
- expect(+"\r \n1.23 \t\t\t \n").toBe(1.23);
- });
- test("object literals", () => {
- expect(+{}).toBeNaN();
- expect(-{}).toBeNaN();
- expect(+{ a: 1 }).toBeNaN();
- expect(-{ a: 1 }).toBeNaN();
- });
|