package com.coding.test;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.coding.array.ArrayUtil;
public class ArrayUtilTest {
private ArrayUtil arrayUtil;
@Before
public void setUp() throws Exception {
this.arrayUtil = new ArrayUtil();
}
@After
public void tearDown() throws Exception {
this.arrayUtil = null;
}
@Test
public void testReverseArray() {
int[] origin1 = {7, 9 , 30, 3};
int[] origin2 = {7, 9, 30, 3, 4};
this.arrayUtil.reverseArray(origin1);
assertEquals(3, origin1[0]);
assertEquals(30, origin1[1]);
assertEquals(9, origin1[2]);
assertEquals(7, origin1[3]);
this.arrayUtil.reverseArray(origin2);
assertEquals(4, origin2[0]);
assertEquals(3, origin2[1]);
assertEquals(30, origin2[2]);
assertEquals(9, origin2[3]);
assertEquals(7, origin2[4]);
}
@Test
public void testRemoveZero() {
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int[] newArr = this.arrayUtil.removeZero(oldArr);
assertEquals(12, newArr.length);
assertEquals(6, newArr[4]);
int oldArr1[]={0,0,0,0};
int[] newArr1 = this.arrayUtil.removeZero(oldArr1);
assertEquals(0, newArr1.length);
}
@Test
public void testMerge() {
int[] a1 = {3, 5, 7,8};
int[] a2 = {4, 5, 6,7};
//[3,4,5,6,7,8]
int[] a3 = this.arrayUtil.merge(a1, a2);
assertEquals(6, a3.length);
assertEquals(3, a3[0]);
assertEquals(8, a3[5]);
int[] arr1 = {3, 5, 7};
int[] arr2 = {9,12,15,19};
int[] arr3 = this.arrayUtil.merge(arr1, arr2);
int[] arr4 = this.arrayUtil.merge(arr2, arr1);
assertEquals(7, arr3.length);
assertEquals(3, arr3[0]);
assertEquals(19, arr3[6]);
//assertEquals(arr3, arr4);
assertEquals(7, arr4.length);
assertEquals(3, arr4[0]);
assertEquals(19, arr4[6]);
int[] a = {};
int[] arr = this.arrayUtil.merge(a, a1);
assertEquals(4, arr.length);
assertEquals(3, arr[0]);
assertEquals(8, arr[3]);
}
@Test
public void testGrow() {
int[] a1 = {2,3,6};
int[] a2 = this.arrayUtil.grow(a1, 3);
assertEquals(6, a2.length);
assertEquals(3, a1[1]);
assertEquals(0, a2[3]);
int[] a3 = this.arrayUtil.grow(a1, 0);
assertEquals(3, a3.length);
int[] a4 = this.arrayUtil.grow(new int[0], 3);
assertEquals(3, a4.length);
}
@Test
public void testFibonacci() {
int[] arr = this.arrayUtil.fibonacci(15);
assertEquals(7, arr.length);
assertEquals(13, arr[6]);
int[] arr1 = this.arrayUtil.fibonacci(1);
assertEquals(0, arr1.length);
}
@Test
public void testGetPrimes() {
int[] arr = this.arrayUtil.getPrimes(23);
assertEquals(8, arr.length);
assertEquals(true, arr[arr.length-1]<23);
int[] arr1 = this.arrayUtil.getPrimes(2);
assertEquals(0, arr1.length);
}
@Test
public void testGetPerfectNumbers() {
//6 28 496 8128 33550336
int[] arr = this.arrayUtil.getPerfectNumbers(10000);
assertEquals(4, arr.length);
assertEquals(8128, arr[3]);
}
@Test
public void testJoin() {
int[] array= {3,8,9};
String str = this.arrayUtil.join(array, "-");
assertEquals("3-8-9", str);
String str1 = this.arrayUtil.join(array, "9");
assertEquals("39899", str1);
}
}