## The challenge

Build a function that returns an array of integers from n to 1 where `n>0`.

Example : `n=5` –> `[5,4,3,2,1]`

## The solution in Java code

Option 1:

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 `````` ``````public class Sequence{ public static int[] reverse(int n) { if (n<=0) return null; int[] out = new int[n]; for (int i=n, j=0; i>0; i--) { out[j] = i; j++; } return out; } } ``````

Option 2:

 ``````1 2 3 4 5 6 7 8 9 `````` ``````import java.util.stream.IntStream; public class Sequence{ public static int[] reverse(int n) { return IntStream.range(-n, 0).map(Math::abs).toArray(); } } ``````

Option 3:

 ``````1 2 3 4 5 6 7 8 9 `````` ``````import java.util.stream.IntStream; public class Sequence{ public static int[] reverse(int n) { return IntStream.iterate(n, i -> i - 1).limit(n).toArray(); } } ``````

## 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 21 22 23 24 25 26 27 28 29 30 31 32 33 `````` ``````import org.junit.Test; import static org.junit.Assert.assertArrayEquals; import org.junit.runners.JUnit4; public class SolutionTest { private int[] reverseSolution(int n){ int[] result = new int[n]; for(int i=n;i>0;i--){ result[n-i]=i; } return result; } @Test public void simpleTest() { assertArrayEquals(new int[]{5,4,3,2,1},Sequence.reverse(5)); assertArrayEquals(new int[]{6,5,4,3,2,1},Sequence.reverse(6)); assertArrayEquals(reverseSolution(100),Sequence.reverse(100)); assertArrayEquals(reverseSolution(1000),Sequence.reverse(1000)); assertArrayEquals(reverseSolution(100000),Sequence.reverse(100000)); assertArrayEquals(reverseSolution(10000000),Sequence.reverse(10000000)); } @Test public void randomTest(){ for(int i=0;i<100;i++){ int random = 1 + (int)(Math.random() * 9999); assertArrayEquals(reverseSolution(random),Sequence.reverse(random)); } } } ``````