shifted-elements7.js (1035B)
1 function test1() { 2 var a = []; 3 for (var i = 0; i < 100; i++) 4 a.unshift("foo" + i); 5 for (var i = 99; i >= 0; i--) { 6 assertEq(a.shift(), "foo" + i); 7 a.unshift("foo" + (i - 1)); 8 } 9 assertEq(a.length, 100); 10 } 11 test1(); 12 13 function sum(arr) { 14 var res = 0; 15 for (var i = 0; i < arr.length; i++) 16 res += arr[i]; 17 return res; 18 } 19 function test2() { 20 var a = []; 21 for (var i = 0; i < 200; i++) 22 a.push(i); 23 for (var i = 0; i < 100; i++) 24 a.shift(); 25 for (var i = 0; i < 200; i++) 26 a.unshift(i); 27 assertEq(a.length, 300); 28 assertEq(sum(a), 34850); 29 } 30 test2(); 31 32 function test3() { 33 var a = []; 34 for (var i = 0; i < 200; i++) 35 a.push(i); 36 var toAdd = []; 37 var step = 1; 38 for (var i = 0; i < 2500; i += step) { 39 for (var j = 0; j < step; j++) 40 toAdd.unshift(i + j); 41 a.unshift(...toAdd); 42 step = Math.max((i / 16)|0, 1); 43 } 44 assertEq(a.length, 41463); 45 assertEq(sum(a), 26657756); 46 } 47 test3();