dsad

 avatar
unknown
java
5 months ago
6.3 kB
6
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