MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 93 lines 2.0 kB view raw
1import { test, testDeep, summary } from './helpers.js'; 2 3console.log('Loop Tests\n'); 4 5let sum = 0; 6for (let i = 0; i < 5; i++) sum += i; 7test('for loop sum', sum, 10); 8 9let nested = 0; 10for (let i = 0; i < 3; i++) { 11 for (let j = 0; j < 3; j++) { 12 nested++; 13 } 14} 15test('nested for loops', nested, 9); 16 17function findFirst(arr, target) { 18 for (let i = 0; i < arr.length; i++) { 19 if (arr[i] === target) return i; 20 } 21 return -1; 22} 23test('for loop return', findFirst([10, 20, 30], 20), 1); 24test('for loop return not found', findFirst([10, 20, 30], 99), -1); 25 26let breakSum = 0; 27for (let i = 0; i < 10; i++) { 28 if (i === 5) break; 29 breakSum += i; 30} 31test('for loop break', breakSum, 10); 32 33let evenSum = 0; 34for (let i = 0; i < 10; i++) { 35 if (i % 2 === 1) continue; 36 evenSum += i; 37} 38test('for loop continue', evenSum, 20); 39 40let k = 0; 41let extCount = 0; 42for (; k < 5; k++) extCount++; 43test('for loop external init', extCount, 5); 44 45let countdown = 0; 46for (let i = 5; i > 0; i--) countdown += i; 47test('for loop decrement', countdown, 15); 48 49let arr = [1, 2, 3, 4, 5]; 50for (let i = 0; i < arr.length; i++) arr[i] *= 2; 51testDeep('for loop modify array', arr, [2, 4, 6, 8, 10]); 52 53let str = 'hello'; 54let chars = ''; 55for (let i = 0; i < str.length; i++) chars += str[i]; 56test('for loop string', chars, 'hello'); 57 58let whileSum = 0; 59let j = 0; 60while (j < 5) { 61 whileSum += j; 62 j++; 63} 64test('while loop', whileSum, 10); 65 66let doSum = 0; 67let d = 0; 68do { 69 doSum += d; 70 d++; 71} while (d < 5); 72test('do-while loop', doSum, 10); 73 74const obj = { a: 1, b: 2, c: 3 }; 75let keys = []; 76for (let key in obj) keys.push(key); 77test('for-in keys length', keys.length, 3); 78test('for-in has a', keys.includes('a'), true); 79 80const items = [10, 20, 30]; 81let forOfSum = 0; 82for (let item of items) forOfSum += item; 83test('for-of sum', forOfSum, 60); 84 85let forOfChars = ''; 86for (let c of 'abc') forOfChars += c; 87test('for-of string', forOfChars, 'abc'); 88 89let largeSum = 0; 90for (let i = 0; i < 1000; i++) largeSum += i; 91test('large loop', largeSum, 499500); 92 93summary();