### Question:
GroupingList extends TransformedList<E, List<E>> { public int indexOfGroup(E groupElement) { final int sourceIndex = ((SortedList<E>) source).sortIndex(groupElement); if (sourceIndex == source.size() || grouper.getComparator().compare(source.get(sourceIndex), groupElement) != 0) return -1; return grouper.getBarcode().getColourIndex(sourceIndex, Grouper.UNIQUE); } GroupingList(EventList<E> source);  GroupingList(EventList<E> source, Comparator<? super E> comparator); private  GroupingList(SortedList<E> source, Comparator<? super E> comparator, Void dummyParameter); static GroupingList<E> create(EventList<E> source); int indexOfGroup(E groupElement); void setComparator(Comparator<? super E> comparator); @Override void listChanged(ListEvent<E> listChanges); @Override List<E> get(int index); @Override List<E> remove(int index); @Override List<E> set(int index, List<E> value); @Override void add(int index, List<E> value); @Override int size(); @Override void dispose();  }### Answer:
@Test public void testIndexOfGroup() { final EventList<String> source = new BasicEventList<>(); final GroupingList<String> groupingList = new GroupingList<>(source, GlazedListsTests.getFirstLetterComparator()); source.add("Bart"); source.add("Brent"); source.add("Brisket"); source.add("Jackal"); source.add("Jackalope"); source.add("Juggernaut"); source.add("Rib"); source.add("Rub"); source.add("Rubber"); assertEquals(-1, groupingList.indexOfGroup("Ambrose")); assertEquals(0, groupingList.indexOfGroup("Bilbo")); assertEquals(-1, groupingList.indexOfGroup("Cardiac")); assertEquals(-1, groupingList.indexOfGroup("Ignatius")); assertEquals(1, groupingList.indexOfGroup("Jargon")); assertEquals(-1, groupingList.indexOfGroup("Korn")); assertEquals(-1, groupingList.indexOfGroup("Uranus")); assertEquals(2, groupingList.indexOfGroup("Rusty")); assertEquals(-1, groupingList.indexOfGroup("Steve")); }