29 lines
813 B
JavaScript
29 lines
813 B
JavaScript
function looptest(start, stop, step) {
|
|
let a = [];
|
|
try {
|
|
for(let i = start; i <= stop; i += step) {
|
|
a.push(i);
|
|
if (a.length == 10) {
|
|
break;
|
|
}
|
|
}
|
|
return a;
|
|
} catch {
|
|
return "Not allowed";
|
|
}
|
|
}
|
|
|
|
let test_cases = {"Normal": [-2, 2, 1],
|
|
"Zero step": [-2, 2, 0],
|
|
"Steps away from stop value": [-2, 2, -1],
|
|
"Step value > stop value": [-2, 2, 10],
|
|
"Start > stop, positive step": [2, -2, 1],
|
|
"Start = stop, positive step": [2, 2, 1],
|
|
"Start = stop, negative step": [2, 2, -1],
|
|
"Start = stop, zero step": [2, 2, 0],
|
|
"Start, stop, step all zero": [0, 0, 0]}
|
|
|
|
for (const property in test_cases) {
|
|
let result = looptest(...test_cases[property]);
|
|
console.log(`${property}: ${result} ${result.length == 10 ? "(loops forever)" : ""}`);
|
|
}
|