package test;
import static org.junit.Assert.*;
import org.junit.Test;
import main.ArrayUtil;
public class ArrayUtilTest {
@Test
public void testReverseArray() {
int[] origin = null;
ArrayUtil.reverseArray(origin);
assertEquals(null, origin);
int[] origin1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
ArrayUtil.reverseArray(origin1);
int[] expected1 = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
for (int i = 0; i < 4; i++) {
assertEquals(expected1[i], origin1[i]);
}
int[] origin2 = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
ArrayUtil.reverseArray(origin2);
int[] expected2 = { 8, 7, 6, 5, 4, 3, 2, 1, 0 };
for (int i = 0; i < 4; i++) {
assertEquals(expected2[i], origin2[i]);
}
}
@Test
public void testRemoveZero() {
int oldArr[] = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
int excepted[] = { 1, 3, 4, 5, 6, 6, 5, 4, 7, 6, 7, 5 };
oldArr = ArrayUtil.removeZero(oldArr);
System.out.println(oldArr.length);
for (int i = 0; i < oldArr.length; i++) {
assertEquals(excepted[i], oldArr[i]);
}
}
@Test
public void testMerge() {
int[] array1 = { 3, 4, 4, 5, 7, 8 };
int[] array2 = { 4, 5, 6, 7 };
int[] expected = { 3, 4, 5, 6, 7, 8 };
int[] array = ArrayUtil.merge(array1, array2);
for (int i = 0; i < array.length; i++) {
assertEquals(expected[i], array[i]);
}
}
@Test
public void testGrow() {
int[] oldArray = { 2, 3, 6 };
int[] array = ArrayUtil.grow(oldArray, 3);
int[] expected = { 2, 3, 6, 0, 0, 0 };
for (int i = 0; i < array.length; i++) {
assertEquals(expected[i], array[i]);
}
}
@Test
public void testFibonacci() {
int[] fibonacci = ArrayUtil.fibonacci(1);
assertEquals(0, fibonacci.length);
int[] fibonacci1 = ArrayUtil.fibonacci(16);
int[] excepted1 = { 1, 1, 2, 3, 5, 8, 13, 15 };
for (int i = 0; i < fibonacci1.length; i++) {
assertEquals(excepted1[i], fibonacci1[i]);
}
}
@Test
public void testGetPrimes() {
int[] primes = ArrayUtil.getPrimes(23);
int[] excepted = { 2, 3, 5, 7, 11, 13, 17, 19 };
for (int i = 0; i < primes.length; i++) {
assertEquals(excepted[i], primes[i]);
}
}
@Test
public void testGetPerfectNumbers() {
int[] PerfectNumbers = ArrayUtil.getPerfectNumbers(497);
int[] excepted = { 6, 28, 496 };
for (int i = 0; i < PerfectNumbers.length; i++) {
assertEquals(excepted[i], PerfectNumbers[i]);
}
}
@Test
public void testJoin() {
int[] array1 = { 3 };
assertEquals("3", ArrayUtil.join(array1, "-%"));
int[] array2 = { 3, 8, 9, 7 };
assertEquals("3-%8-%9-%7", ArrayUtil.join(array2, "-%"));
}
}