## The challenge

Implement a function named generateRange(min, max, step), which takes three arguments and generates a range of integers from min to max, with the step. The first integer is the minimum value, the second is the maximum of the range and the third is the step. (min < max)

Implement a function named

 ``````1 2 `````` ``````generate_range(2, 10, 2) # should return list of [2,4,6,8,10] generate_range(1, 10, 3) # should return list of [1,4,7,10] ``````
 ``````1 2 `````` ``````generate_range(2, 10, 2) # should return array of [2, 4, 6, 8, 10] generate_range(1, 10, 3) # should return array of [1, 4, 7, 10] ``````

### Note

• min < max
• step > 0
• the range does not HAVE to include max (depending on the step)

## The solution in Python code

Option 1:

 ``````1 2 3 4 5 `````` ``````def generate_range(min, max, step): out = [] for i in range(min, max+1, step): out.append(i) return out ``````

Option 2:

 ``````1 2 `````` ``````def generate_range(min, max, step): return [i for i in range(min, max+1, step)] ``````

Option 3:

 ``````1 `````` ``````generate_range=lambda a,b,c:list(range(a,b+1,c)) ``````

## Test cases to validate our solution

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 `````` ``````import test from solution import generate_range @test.describe("Sample tests") def test_group(): @test.it("Simple case") def test_case1(): test.assert_equals(generate_range(1, 10, 1), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) @test.it('Negative numbers') def test_case2(): test.assert_equals(generate_range(-10, 1, 1), [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1]) @test.it('Step > max') def test_case3(): test.assert_equals(generate_range(1, 15, 20), [1]) @test.it('Step = 2') def test_case4(): test.assert_equals(generate_range(1, 7, 2), [1, 3, 5, 7]) @test.it('Step = 3') def test_case5(): test.assert_equals(generate_range(0, 20, 3), [0, 3, 6, 9, 12, 15, 18]) ``````