/**
* 问题点: 没有全分支覆盖。只简单的测了关键或者关心的case
*/
package com.github.eulerlcs.jmr.algorithm;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class ArrayUtilTest {
@Test
public void reverseArray_null() {
int[] actuals = null;
int[] expecteds = null;
ArrayUtil.reverseArray(actuals);
assertArrayEquals(actuals, expecteds);
}
@Test
public void reverseArray_0() {
int[] actuals = {};
int[] expecteds = {};
ArrayUtil.reverseArray(actuals);
assertArrayEquals(actuals, expecteds);
}
@Test
public void reverseArray_1() {
int[] actuals = { 2 };
int[] expecteds = { 2 };
ArrayUtil.reverseArray(actuals);
assertArrayEquals(actuals, expecteds);
}
@Test
public void reverseArray_2() {
int[] actuals = { 7, 9 };
int[] expecteds = { 9, 7 };
ArrayUtil.reverseArray(actuals);
assertArrayEquals(actuals, expecteds);
}
@Test
public void reverseArray_4() {
int[] actuals = { 7, 9, 30, 3 };
int[] expecteds = { 3, 30, 9, 7 };
ArrayUtil.reverseArray(actuals);
assertArrayEquals(actuals, expecteds);
}
@Test
public void reverseArray_5() {
int[] actuals = { 7, 9, 30, 3, 4 };
int[] expecteds = { 4, 3, 30, 9, 7 };
ArrayUtil.reverseArray(actuals);
assertArrayEquals(actuals, expecteds);
}
@Test
public void removeZero_null() {
int oldArr[] = null;
int[] expecteds = {};
int[] newArr = ArrayUtil.removeZero(oldArr);
assertArrayEquals(newArr, expecteds);
}
@Test
public void removeZero_0() {
int oldArr[] = {};
int[] expecteds = {};
int[] newArr = ArrayUtil.removeZero(oldArr);
assertArrayEquals(newArr, expecteds);
}
@Test
public void removeZero_1() {
int oldArr[] = { 0 };
int[] expecteds = {};
int[] newArr = ArrayUtil.removeZero(oldArr);
assertArrayEquals(newArr, expecteds);
}
@Test
public void removeZero_2() {
int oldArr[] = { 3, 5 };
int[] expecteds = { 3, 5 };
int[] newArr = ArrayUtil.removeZero(oldArr);
assertArrayEquals(newArr, expecteds);
}
@Test
public void removeZero_3() {
int oldArr[] = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
int[] expecteds = { 1, 3, 4, 5, 6, 6, 5, 4, 7, 6, 7, 5 };
int[] newArr = ArrayUtil.removeZero(oldArr);
assertArrayEquals(newArr, expecteds);
}
@Test
public void merge_1() {
int[] a1 = { 3, 5, 7, 8 };
int[] a2 = { 4, 5, 6, 7 };
int[] expecteds = { 3, 4, 5, 6, 7, 8 };
int[] newArr = ArrayUtil.merge(a1, a2);
assertArrayEquals(newArr, expecteds);
}
@Test
public void merge_2() {
int[] a1 = { 4, 5, 6, 7 };
int[] a2 = { 3, 5, 7, 8 };
int[] expecteds = { 3, 4, 5, 6, 7, 8 };
int[] newArr = ArrayUtil.merge(a1, a2);
assertArrayEquals(newArr, expecteds);
}
@Test
public void grow_1() {
int[] oldArray = { 2, 3, 6 };
int increaseCapacity = 3;
int[] expecteds = { 2, 3, 6, 0, 0, 0 };
int[] newArr = ArrayUtil.grow(oldArray, increaseCapacity);
assertArrayEquals(newArr, expecteds);
}
@Test
public void fibonacci_1() {
int max = 1;
int[] expecteds = {};
int[] newArr = ArrayUtil.fibonacci(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void fibonacci_2() {
int max = 2;
int[] expecteds = { 1, 1 };
int[] newArr = ArrayUtil.fibonacci(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void fibonacci_15() {
int max = 15;
int[] expecteds = { 1, 1, 2, 3, 5, 8, 13 };
int[] newArr = ArrayUtil.fibonacci(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void getPrimes_1() {
int max = 1;
int[] expecteds = {};
int[] newArr = ArrayUtil.getPrimes(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void getPrimes_2() {
int max = 2;
int[] expecteds = {};
int[] newArr = ArrayUtil.getPrimes(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void getPrimes_3() {
int max = 3;
int[] expecteds = { 2 };
int[] newArr = ArrayUtil.getPrimes(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void getPrimes_4() {
int max = 4;
int[] expecteds = { 2, 3 };
int[] newArr = ArrayUtil.getPrimes(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void getPrimes_23() {
int max = 23;
int[] expecteds = { 2, 3, 5, 7, 11, 13, 17, 19 };
int[] newArr = ArrayUtil.getPrimes(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void getPrimes_24() {
int max = 24;
int[] expecteds = { 2, 3, 5, 7, 11, 13, 17, 19, 23 };
int[] newArr = ArrayUtil.getPrimes(max);
assertArrayEquals(newArr, expecteds);
}
@Test
public void getPerfectNumbers_max() {
long max = Long.MAX_VALUE;
max = 10000;
long[] expecteds = { 6, 28, 496, 8128, 33550336, 8589869056L, 137438691328L, 2305843008139952128L };
long[] newArr = ArrayUtil.getPerfectNumbers(max);
assertEquals(newArr[3], expecteds[3]);
}
@Test
public void join_0() {
int[] array = { 3, 8, 9 };
String separator = "-";
String expected = "3-8-9";
String actual = ArrayUtil.join(array, separator);
assertEquals(expected, actual);
}
}