Skip to content

Commit 7954957

Browse files
committed
Added unit tests for removeLast.
1 parent 6c37b08 commit 7954957

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

src/net/danielhildebrandt/JArray.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ public static final <E> E removeLast(E[] arr, E emptyElem, E removed)
370370
return emptyElem;
371371
else {
372372
int lastOccurrenceIndex = lastIndexOf(arr, removed);
373-
if(lastOccurrenceIndex < 0)
373+
if(lastOccurrenceIndex < 0 && arr.length > 0)
374374
return emptyElem;
375375
else
376376
return remove(arr, emptyElem, lastOccurrenceIndex);

test/net/danielhildebrandt/test/JArrayTest.java

+26-6
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import static net.danielhildebrandt.JArray.numberOf;
1616
import static net.danielhildebrandt.JArray.remove;
1717
import static net.danielhildebrandt.JArray.removeFirst;
18+
import static net.danielhildebrandt.JArray.removeLast;
1819
import static net.danielhildebrandt.JArray.removeRange;
1920
import static net.danielhildebrandt.JArray.toPrimitiveArray;
2021
import static net.danielhildebrandt.JArray.toWrapperArray;
@@ -599,43 +600,62 @@ public static final class RemoveLastTest
599600
@Test
600601
public final void removeLast_NullEmptyElement()
601602
{
603+
String[] before = {"Lorkhan", "Doom-Drum", "Doom-Drum", "Shor", "Shezarr", null, null};
604+
String[] after = {"Lorkhan", "Doom-Drum", "Shor", "Shezarr", null, null, null};
602605

606+
removeLast(before, null, "Doom-Drum");
607+
assertThat(before, is(equalTo(after)));
603608
}
604609

605610
@Test
606611
public final void removeLast_NonNullEmptyElement()
607612
{
613+
Object[] before = {"Cyrodiil", "Argonia", "Resdayn", "Argonia", "Elsweyr", "Skyrim", ""};
614+
Object[] after = {"Cyrodiil", "Argonia", "Resdayn", "Elsweyr", "Skyrim", "", ""};
608615

616+
removeLast(before, "", "Argonia");
617+
assertThat(before, is(equalTo(after)));
609618
}
610619

611620
@Test
612621
public final void removeLast_RemoveEmptyElement()
613622
{
623+
String[] before = {"Coldharbor", "Infernace", "Ashpit", "Fourth Sinus of Takubar", ""};
624+
String[] after = {"Coldharbor", "Infernace", "Ashpit", "Fourth Sinus of Takubar", ""};
614625

626+
removeLast(before, "", "");
627+
assertThat(before, is(equalTo(after)));
615628
}
616629

617630
@Test
618631
public final void removeLast_RemoveNonExistent()
619632
{
633+
String[] before = {"Vokun", "Morokei", "Nahkriin", "Hevnoraak", null};
634+
String[] after = {"Vokun", "Morokei", "Nahkriin", "Hevnoraak", null};
620635

636+
removeLast(before, null, "Konahriik");
637+
assertThat(before, is(equalTo(after)));
621638
}
622639

623-
@Test
640+
@Test(expected = NullPointerException.class)
624641
public final void removeLast_NullArray()
625642
{
626-
643+
Object[] arr = null;
644+
removeLast(arr, null, "Magna-ge");
627645
}
628646

629-
@Test
647+
@Test(expected = IllegalArgumentException.class)
630648
public final void removeLast_EmptyArray()
631649
{
632-
650+
String[] arr = {};
651+
removeLast(arr, "", "Aetherius");
633652
}
634653

635-
@Test
654+
@Test(expected = IncompleteArrayException.class)
636655
public final void removeLast_IncompleteArray()
637656
{
638-
657+
String[] arr = {"Yol Tor Shuul", "", "Fus Ro Dah", "Lok Vah Koor", ""};
658+
removeLast(arr, "", "Fus Ro Dah");
639659
}
640660
}
641661

0 commit comments

Comments
 (0)