| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | test("basic numeric shifting", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(0 << 0).toBe(0); | 
					
						
							|  |  |  |     expect(0 << 1).toBe(0); | 
					
						
							|  |  |  |     expect(0 << 2).toBe(0); | 
					
						
							|  |  |  |     expect(0 << 3).toBe(0); | 
					
						
							|  |  |  |     expect(0 << 4).toBe(0); | 
					
						
							|  |  |  |     expect(0 << 5).toBe(0); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(1 << 0).toBe(1); | 
					
						
							|  |  |  |     expect(1 << 1).toBe(2); | 
					
						
							|  |  |  |     expect(1 << 2).toBe(4); | 
					
						
							|  |  |  |     expect(1 << 3).toBe(8); | 
					
						
							|  |  |  |     expect(1 << 4).toBe(16); | 
					
						
							|  |  |  |     expect(1 << 5).toBe(32); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(2 << 0).toBe(2); | 
					
						
							|  |  |  |     expect(2 << 1).toBe(4); | 
					
						
							|  |  |  |     expect(2 << 2).toBe(8); | 
					
						
							|  |  |  |     expect(2 << 3).toBe(16); | 
					
						
							|  |  |  |     expect(2 << 4).toBe(32); | 
					
						
							|  |  |  |     expect(2 << 5).toBe(64); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(3 << 0).toBe(3); | 
					
						
							|  |  |  |     expect(3 << 1).toBe(6); | 
					
						
							|  |  |  |     expect(3 << 2).toBe(12); | 
					
						
							|  |  |  |     expect(3 << 3).toBe(24); | 
					
						
							|  |  |  |     expect(3 << 4).toBe(48); | 
					
						
							|  |  |  |     expect(3 << 5).toBe(96); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(4 << 0).toBe(4); | 
					
						
							|  |  |  |     expect(4 << 1).toBe(8); | 
					
						
							|  |  |  |     expect(4 << 2).toBe(16); | 
					
						
							|  |  |  |     expect(4 << 3).toBe(32); | 
					
						
							|  |  |  |     expect(4 << 4).toBe(64); | 
					
						
							|  |  |  |     expect(4 << 5).toBe(128); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect(5 << 0).toBe(5); | 
					
						
							|  |  |  |     expect(5 << 1).toBe(10); | 
					
						
							|  |  |  |     expect(5 << 2).toBe(20); | 
					
						
							|  |  |  |     expect(5 << 3).toBe(40); | 
					
						
							|  |  |  |     expect(5 << 4).toBe(80); | 
					
						
							|  |  |  |     expect(5 << 5).toBe(160); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test("shifting with non-numeric values", () => { | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     let x = 3; | 
					
						
							|  |  |  |     let y = 7; | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-06 07:37:45 -07:00
										 |  |  |     expect("42" << 6).toBe(2688); | 
					
						
							|  |  |  |     expect(x << y).toBe(384); | 
					
						
							|  |  |  |     expect(x << [[[[12]]]]).toBe(12288); | 
					
						
							|  |  |  |     expect(undefined << y).toBe(0); | 
					
						
							|  |  |  |     expect("a" << "b").toBe(0); | 
					
						
							|  |  |  |     expect(null << null).toBe(0); | 
					
						
							|  |  |  |     expect(undefined << undefined).toBe(0); | 
					
						
							|  |  |  |     expect(NaN << NaN).toBe(0); | 
					
						
							|  |  |  |     expect(NaN << 6).toBe(0); | 
					
						
							|  |  |  |     expect(Infinity << Infinity).toBe(0); | 
					
						
							|  |  |  |     expect(-Infinity << Infinity).toBe(0); | 
					
						
							| 
									
										
										
										
											2020-07-05 17:26:26 -07:00
										 |  |  | }); |