### Question:
StreamIndices { public static List<Indexed<String>> getOddIndexedStrings(List<String> names) { List<Indexed<String>> list = StreamUtils.zipWithIndex(names.stream()) .filter(i -> i.getIndex() % 2 == 1) .collect(Collectors.toList()); return list; }  static List<String> getEvenIndexedStrings(String[] names); List<String> getEvenIndexedStringsVersionTwo(List<String> names); static List<Indexed<String>> getEvenIndexedStrings(List<String> names); static List<Indexed<String>> getOddIndexedStrings(List<String> names); static List<String> getOddIndexedStrings(String[] names); static List<String> getOddIndexedStringsVersionTwo(String[] names);  }### Answer:
@Test public void whenCalled_thenReturnListOfOddStrings() { String[] names = {"Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"}; List<String> expectedResult = Arrays.asList("Bashkim", "Lulzim", "Shpetim"); List<String> actualResult = StreamIndices.getOddIndexedStrings(names); assertEquals(expectedResult, actualResult); }
@Test public void givenList_whenCalled_thenReturnListOfOddIndexedStrings() { List<String> names = Arrays.asList("Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"); List<Indexed<String>> expectedResult = Arrays .asList(Indexed.index(1, "Bashkim"), Indexed.index(3, "Lulzim"), Indexed .index(5, "Shpetim")); List<Indexed<String>> actualResult = StreamIndices.getOddIndexedStrings(names); assertEquals(expectedResult, actualResult); }