add lastIndexOf

This commit is contained in:
2017-12-13 20:39:54 +01:00
parent 76e5dc403c
commit 25650b9638
2 changed files with 122 additions and 4 deletions

View File

@@ -766,6 +766,14 @@ public class IntListTest {
Assert.assertEquals(3, list.indexOf(3, 2));
}
@Test
public void testIndexOfWithOffsetOnSortedListWithOffsetOutOfRange() {
final IntList list = new IntList();
list.addAll(1);
Assert.assertEquals(0, list.indexOf(1, -1));
Assert.assertEquals(-1, list.indexOf(1, list.size()));
}
@Test
public void testIndexOfWithOffsetOnUnsortedList() {
final IntList list = new IntList();
@@ -783,6 +791,51 @@ public class IntListTest {
Assert.assertEquals(list.get(list.indexOf(2, 3)), 2);
}
@Test
public void testLastIndexOfWithOffsetOnEmptyList() {
final IntList list = IntList.of();
Assert.assertEquals(-1, list.lastIndexOf(3, list.size()));
}
@Test
public void testLastIndexOfWithOffsetOnSortedList() {
final IntList list = IntList.of(1, 2, 2, 3, 4, 5, 6, 7, 8, 9);
Assert.assertEquals(3, list.lastIndexOf(3, list.size()));
Assert.assertEquals(2, list.lastIndexOf(2, list.size()));
Assert.assertEquals(0, list.lastIndexOf(1, list.size()));
Assert.assertEquals(2, list.lastIndexOf(2, 2)); // fromIndex == result
Assert.assertEquals(1, list.lastIndexOf(2, 1)); // fromIndex == result && the next element would be a hit
Assert.assertEquals(0, list.lastIndexOf(1, 0)); // fromIndex 0; found
Assert.assertEquals(-1, list.lastIndexOf(99, 0)); // fromIndex 0; not found
Assert.assertEquals(-1, list.lastIndexOf(99, list.size())); // fromIndex larger than list && not found
}
@Test
public void testLastIndexOfOnSortedListReturnsFirstMatch() {
final IntList list = IntList.of(0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4);
Assert.assertEquals(13, list.lastIndexOf(2));
Assert.assertEquals(10, list.lastIndexOf(2, 10));
}
@Test
public void testLastIndexOfWithOffsetOnUnsortedList() {
final IntList list = IntList.of(1, 2, 3, 1, 2, 3);
Assert.assertEquals(5, list.lastIndexOf(3, list.size()));
Assert.assertEquals(4, list.lastIndexOf(2, list.size()));
Assert.assertEquals(3, list.lastIndexOf(1, list.size()));
Assert.assertEquals(-1, list.lastIndexOf(99, list.size()));
Assert.assertEquals(-1, list.lastIndexOf(99, 0));
Assert.assertEquals(2, list.lastIndexOf(3, list.size() - 2));
Assert.assertEquals(4, list.lastIndexOf(2, list.size() - 1));
Assert.assertEquals(1, list.lastIndexOf(2, list.lastIndexOf(2) - 1));
}
@Test
public void replaceAll() {
final IntList list = new IntList();