package testcase;
import static org.junit.Assert.*;
import org.junit.Test;
import com.basic.ArrayUtil;
public class TestArrayUtil
{
private void print_r(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
// int index = 0;
// while (a[index] != '\0') {
// System.out.print(a[index] + " ");
// ++index;
// }
// System.out.println();
}
@Test
public void testReverseArray() {
ArrayUtil arrayUtil = new ArrayUtil();
int[] a = { 7, 9, 30, 3 };
// print_r(a);
arrayUtil.reverseArray(a);
// print_r(a);
assertTrue(a[0] == 3);
assertTrue(a[1] == 30);
assertTrue(a[3] == 7);
int[] b = { 7, 9, 30, 3, 4 };
// print_r(b);
arrayUtil.reverseArray(b);
// print_r(b);
assertTrue(b[0] == 4);
assertTrue(b[1] == 3);
assertTrue(b[3] == 9);
assertTrue(b[2] == 30);
}
@Test
public void testRemoveZero() {
ArrayUtil arrayUtil = new ArrayUtil();
int[] oldArr = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
int[] newArr = arrayUtil.removeZero(oldArr);
// print_r(newArr);
assertFalse(newArr[4] == 0);
assertTrue(newArr[4] == 6);
}
@Test
public void testMerge() {
ArrayUtil arrayUtil = new ArrayUtil();
int[] a1 = { 3, 5, 7, 8 };
int[] a2 = { 4, 5, 6, 7 };
int[] newArr = arrayUtil.merge(a1, a2);
// print_r(newArr);
assertTrue(newArr[0] == 3);
assertTrue(newArr[2] == 5);
assertTrue(newArr[3] == 6);
assertTrue(newArr[5] == 8);
}
@Test
public void testGrow() {
ArrayUtil arrayUtil = new ArrayUtil();
int[] a1 = { 3, 5, 7, 8 };
a1 = arrayUtil.grow(a1, 3);
// print_r(a1);
assertTrue(a1[0] == 3);
assertTrue(a1[2] == 7);
assertTrue(a1[3] == 8);
assertTrue(a1[4] == 0);
assertTrue(a1[5] == 0);
assertTrue(a1[6] == 0);
}
@Test
public void testFibonacci() {
ArrayUtil arrayUtil = new ArrayUtil();
int max = 100;
int[] arr = arrayUtil.fibonacci(max);
// print_r(arr);
assertNotNull(arr);
int index = (int) (Math.random() * arr.length);
assertTrue(arr[index] < max);
arr = arrayUtil.fibonacci(1);
assertNull(arr);
}
@Test
public void testGetPrimes() {
ArrayUtil arrayUtil = new ArrayUtil();
int max = 23;
int[] arr = arrayUtil.getPrimes(max);
// print_r(arr);
int index = (int) (Math.random() * arr.length);
assertTrue(arr[index] < max);
assertTrue(arrayUtil.isPrime(arr[index]));
}
@Test
public void testGetPerfectNumbers() {
ArrayUtil arrayUtil = new ArrayUtil();
int max = 300;
int[] arr = arrayUtil.getPerfectNumbers(max);
// print_r(arr);
int index = (int) (Math.random() * arr.length);
assertTrue(arr[index] < max);
assertTrue(arrayUtil.isPerfectNumber(arr[index]));
}
@Test
public void testJoin() {
ArrayUtil arrayUtil = new ArrayUtil();
int[] a = { 3, 8, 9 };
String str = arrayUtil.join(a, "-");
// System.out.println(str);
assertTrue(str.equals("3-8-9"));
}
}