package com.aaront.execrise;
import com.aaront.exercise.ArrayUtil;
import org.junit.Assert;
import org.junit.Test;
/**
* @author tonyhui
* @since 17/2/27
*/
public class ArrayUtilTest {
private ArrayUtil arrayUtil = new ArrayUtil();
@Test
public void testReverseArray() {
int[] origin = new int[]{7, 9, 30, 3};
arrayUtil.reverseArray(origin);
Assert.assertArrayEquals(new int[]{3, 30, 9, 7}, origin);
origin = new int[]{7, 9, 30, 3, 4};
arrayUtil.reverseArray(origin);
Assert.assertArrayEquals(new int[]{4, 3, 30, 9, 7}, origin);
}
@Test
public void testRemoveZero() {
int[] origin = new int[]{1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5};
int[] newArray = arrayUtil.removeZero(origin);
Assert.assertArrayEquals(new int[]{1, 3, 4, 5, 6, 6, 5, 4, 7, 6, 7, 5}, newArray);
}
@Test
public void testMerge() {
int[] a1 = new int[]{3, 5, 7, 8};
int[] a2 = new int[]{4, 5, 6, 7, 9, 10};
int[] merge = arrayUtil.merge(a1, a2);
Assert.assertArrayEquals(new int[]{3, 4, 5, 6, 7, 8, 9, 10}, merge);
}
@Test
public void testGrow() {
int[] grow = arrayUtil.grow(new int[]{2, 3, 6}, 3);
Assert.assertArrayEquals(new int[]{2, 3, 6, 0, 0, 0}, grow);
}
@Test
public void testFibonacci() {
int[] fibonacci = arrayUtil.fibonacci(15);
Assert.assertArrayEquals(new int[]{1, 1, 2, 3, 5, 8, 13}, fibonacci);
fibonacci = arrayUtil.fibonacci(1);
Assert.assertArrayEquals(new int[]{}, fibonacci);
}
@Test
public void testGetPrimes() {
int[] primes = arrayUtil.getPrimes(23);
Assert.assertArrayEquals(new int[]{2, 3, 5, 7, 11, 13, 17, 19}, primes);
}
@Test
public void testGetPerfectNumbers() {
int[] perfectNumbers = arrayUtil.getPerfectNumbers(1000);
Assert.assertArrayEquals(new int[]{6,28,496}, perfectNumbers);
}
@Test
public void testJoin() {
String join = arrayUtil.join(new int[]{3, 8, 9}, "-");
Assert.assertEquals("3-8-9", join);
}
}