LazyList implements Cloneable, Serializable { @SuppressWarnings("unchecked") public static <E> E get(Object list, int i) { if (list == null) throw new IndexOutOfBoundsException(); if (list instanceof List) return (E) ((List<?>) list).get(i); if (i == 0) return (E) list; throw new IndexOutOfBoundsException(); } private  LazyList(); @SuppressWarnings("unchecked") static Object add(Object list, Object item); @SuppressWarnings("unchecked") static Object add(Object list, int index, Object item); static Object addCollection(Object list, Collection<?> collection); static Object addArray(Object list, Object[] array); static Object ensureSize(Object list, int initialSize); static Object remove(Object list, Object o); static Object remove(Object list, int i); static List<E> getList(Object list); @SuppressWarnings("unchecked") static List<E> getList(Object list, boolean nullForEmpty); static boolean hasEntry(Object list); static boolean isEmpty(Object list); static String[] toStringArray(Object list); static Object toArray(Object list, Class<?> clazz); static int size(Object list); @SuppressWarnings("unchecked") static E get(Object list, int i); static boolean contains(Object list, Object item); static Object clone(Object list); static String toString(Object list); @SuppressWarnings("unchecked") static Iterator<E> iterator(Object list); @SuppressWarnings("unchecked") static ListIterator<E> listIterator(Object list);  }
@Test void testGet_OutOfBounds_NullInput() { assertThrows(IndexOutOfBoundsException.class, () -> { LazyList.get(null, 0); }); }
@Test void testGet_OutOfBounds_NonListInput() { assertThrows(IndexOutOfBoundsException.class, () -> { String input = "a"; LazyList.get(input, 1); }); }
@Test void testGet_NonListInput() { String input = "a"; assertEquals("a", LazyList.get(input, 0)); }