dsad
unknown
java
a year ago
6.3 kB
10
Indexable
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class StringListTests {
// Test cases for ArrayStringList
@Test
void testArrayStringListAdd() throws StringListException {
ArrayStringList list = new ArrayStringList();
assertTrue(list.add(0, "Apple"));
assertEquals(1, list.size());
assertEquals("Apple", list.get(0));
assertTrue(list.add(1, "Banana"));
assertEquals(2, list.size());
assertEquals("Banana", list.get(1));
assertTrue(list.add(1, "Cherry")); // Add to the middle
assertEquals(3, list.size());
assertEquals("Cherry", list.get(1));
}
@Test
void testArrayStringListAddOutOfBounds() {
ArrayStringList list = new ArrayStringList();
assertThrows(IndexOutOfBoundsError.class, () -> list.add(1, "OutOfBounds"));
}
@Test
void testArrayStringListGetOutOfBounds() {
ArrayStringList list = new ArrayStringList();
assertThrows(IndexOutOfBoundsError.class, () -> list.get(0)); // List is empty
}
@Test
void testArrayStringListRemove() throws StringListException {
ArrayStringList list = new ArrayStringList();
list.add(0, "Apple");
list.add(1, "Banana");
String removedItem = list.remove(1);
assertEquals("Banana", removedItem);
assertEquals(1, list.size());
assertEquals("Apple", list.get(0));
removedItem = list.remove(0);
assertEquals("Apple", removedItem);
assertEquals(0, list.size());
}
@Test
void testArrayStringListMakeString() throws StringListException {
ArrayStringList list = new ArrayStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
assertEquals("[Apple, Banana, Cherry]", list.toString());
}
@Test
void testArrayStringListReverse() throws StringListException {
ArrayStringList list = new ArrayStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
StringList reversedList = list.reverse();
assertEquals("Cherry", reversedList.get(0));
assertEquals("Banana", reversedList.get(1));
assertEquals("Apple", reversedList.get(2));
}
@Test
void testArrayStringListSlice() throws StringListException {
ArrayStringList list = new ArrayStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
list.add(3, "Date");
StringList slice = list.slice(1, 3);
assertEquals(2, slice.size());
assertEquals("Banana", slice.get(0));
assertEquals("Cherry", slice.get(1));
}
@Test
void testArrayStringListContains() throws StringListException {
ArrayStringList list = new ArrayStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
assertTrue(list.contains(0, "Banana"));
assertFalse(list.contains(1, "Apple"));
}
// Test cases for LinkedStringList
@Test
void testLinkedStringListAdd() throws StringListException {
LinkedStringList list = new LinkedStringList();
assertTrue(list.add(0, "Apple"));
assertEquals(1, list.size());
assertEquals("Apple", list.get(0));
assertTrue(list.add(1, "Banana"));
assertEquals(2, list.size());
assertEquals("Banana", list.get(1));
assertTrue(list.add(1, "Cherry")); // Add to the middle
assertEquals(3, list.size());
assertEquals("Cherry", list.get(1));
}
@Test
void testLinkedStringListAddOutOfBounds() {
LinkedStringList list = new LinkedStringList();
assertThrows(IndexOutOfBoundsError.class, () -> list.add(1, "OutOfBounds"));
}
@Test
void testLinkedStringListGetOutOfBounds() {
LinkedStringList list = new LinkedStringList();
assertThrows(IndexOutOfBoundsError.class, () -> list.get(0)); // List is empty
}
@Test
void testLinkedStringListRemove() throws StringListException {
LinkedStringList list = new LinkedStringList();
list.add(0, "Apple");
list.add(1, "Banana");
String removedItem = list.remove(1);
assertEquals("Banana", removedItem);
assertEquals(1, list.size());
assertEquals("Apple", list.get(0));
removedItem = list.remove(0);
assertEquals("Apple", removedItem);
assertEquals(0, list.size());
}
@Test
void testLinkedStringListMakeString() throws StringListException {
LinkedStringList list = new LinkedStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
assertEquals("[Apple, Banana, Cherry]", list.toString());
}
@Test
void testLinkedStringListReverse() throws StringListException {
LinkedStringList list = new LinkedStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
StringList reversedList = list.reverse();
assertEquals("Cherry", reversedList.get(0));
assertEquals("Banana", reversedList.get(1));
assertEquals("Apple", reversedList.get(2));
}
@Test
void testLinkedStringListSlice() throws StringListException {
LinkedStringList list = new LinkedStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
list.add(3, "Date");
StringList slice = list.slice(1, 3);
assertEquals(2, slice.size());
assertEquals("Banana", slice.get(0));
assertEquals("Cherry", slice.get(1));
}
@Test
void testLinkedStringListContains() throws StringListException {
LinkedStringList list = new LinkedStringList();
list.add(0, "Apple");
list.add(1, "Banana");
list.add(2, "Cherry");
assertTrue(list.contains(0, "Banana"));
assertFalse(list.contains(1, "Apple"));
}
}
Editor is loading...
Leave a Comment