| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | test("non-numeric primitives", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     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(); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("arrays", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     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); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     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(); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("strings", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     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); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(+"foo").toBeNaN(); | 
					
						
							|  |  |  |     expect(-"foo").toBeNaN(); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("numbers", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(+42).toBe(42); | 
					
						
							|  |  |  |     expect(-42).toBe(-42); | 
					
						
							|  |  |  |     expect(+1.23).toBe(1.23); | 
					
						
							|  |  |  |     expect(-1.23).toBe(-1.23); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("infinity", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(+"Infinity").toBe(Infinity); | 
					
						
							|  |  |  |     expect(+"+Infinity").toBe(Infinity); | 
					
						
							|  |  |  |     expect(+"-Infinity").toBe(-Infinity); | 
					
						
							|  |  |  |     expect(-"Infinity").toBe(-Infinity); | 
					
						
							|  |  |  |     expect(-"+Infinity").toBe(-Infinity); | 
					
						
							|  |  |  |     expect(-"-Infinity").toBe(Infinity); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("space and space-like escapes", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(+"  \r  \t \n ").toBe(0); | 
					
						
							|  |  |  |     expect(+"  \n  \t    Infinity   \r   ").toBe(Infinity); | 
					
						
							|  |  |  |     expect(+"\r     \n1.23   \t\t\t  \n").toBe(1.23); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("object literals", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(+{}).toBeNaN(); | 
					
						
							|  |  |  |     expect(-{}).toBeNaN(); | 
					
						
							|  |  |  |     expect(+{ a: 1 }).toBeNaN(); | 
					
						
							|  |  |  |     expect(-{ a: 1 }).toBeNaN(); | 
					
						
							| 
									
										
										
										
											2020-07-05 10:47:40 -07:00
										 |  |  | }); |