package ls.utils;
import java.util.Arrays;
import org.junit.Test;
import static org.junit.Assert.*;
public class Arrays2Test {
private static int[] getDuplicateInts(int len) {
int[] res = new int[len];
for(int i = 0 ; i<len ; ++i) {
res[i] = i/2;
}
return res;
}
private static int[] getInts(int len, int value) {
int[] res = new int[len];
Arrays.fill(res, value);
return res;
}
@Test
public void indexOfLowerBound_value_in_index() {
final int len = 10;
final int index = 7;
// Arrange
int[] v = getDuplicateInts(len);
// Act
int res = Arrays2.indexOfLowerBound(v, v[index]);
// Assert
assertEquals(v[index], v[res]);
assertEquals(v[res], v[res+1]);
}
@Test
public void indexOfLowerBound_empty_array() {
int[] v = {};
assertEquals(0, Arrays2.indexOfLowerBound(v, 7));
}
@Test
public void indexOfLowerBound_one_value() {
final int len = 10;
final int value = 1;
// Arrange
int[] v = getInts(len, value);
// Assert
assertEquals(0, Arrays2.indexOfLowerBound(v, value));
assertEquals(0, Arrays2.indexOfLowerBound(v, value-1));
assertEquals(v.length, Arrays2.indexOfLowerBound(v, value+1));
}
}