var range = def(function() {
/**
* @defaults { start: 0, length: 10, step: 1 }
* @rules () -> array
* @rules (int start) -> array
* @rules (int start, int length) -> array
* @rules (int start, int length, int step) -> array
*/
var i, result = [], count = 0;
for (i = this.start; count < this.length; count++, i += this.step) {
result.push(i);
}
return result;
});
/******* Below is test scripts ******/
// start: 0, length: 10, step: 1
assert.deepEqual(range(), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
// start: 1, length: 10, step: 1
assert.deepEqual(range(1), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
// start: 6, length: 2, step: 1
assert.deepEqual(range(6, 2), [6, 7]);
// start: 2, length: 4, step: 2
assert.deepEqual(range(2, 4, 2), [2, 4, 6, 8]);