### Question:
Part2CreationTransformationTermination { @Complexity(EASY) public static String lastElementFromSource(Flux<String> source) { throw new RuntimeException("Not implemented"); }  @Complexity(EASY) static Mono<List<String>> collectAllItemsToList(Flux<String> source); @Complexity(EASY) static String lastElementFromSource(Flux<String> source); @Complexity(EASY) static Publisher<String> mergeSeveralSources(Publisher<String>... sources); @Complexity(EASY) static Publisher<String> fromFirstEmitted(Publisher<String>... sources); @Complexity(EASY) static Publisher<GroupedFlux<Character, String>> groupWordsByFirstLatter(Flux<String> words); @Complexity(MEDIUM) static Mono<String> executeLazyTerminationOperationAndSendHello(Flux<String> source); @Complexity(MEDIUM) static Publisher<String> zipSeveralSources(Publisher<String> prefix,
                                                      Publisher<String> word,
                                                      Publisher<String> suffix); @Complexity(HARD) static Publisher<String> combineSeveralSources(Publisher<String> prefix,
                                                          Publisher<String> word,
                                                          Publisher<String> suffix); @Complexity(HARD) static Flux<IceCreamBall> fillIceCreamWaffleBowl(
            Flux<IceCreamType> clientPreferences,
            Flux<IceCreamBall> vanillaIceCreamStream,
            Flux<IceCreamBall> chocolateIceCreamStream
    );  }### Answer:
@Test public void lastElementFromSourceTest() { String element = lastElementFromSource(Flux.just("Hello", "World")); Assert.assertEquals("Expected 'World' but was [" + element + "]", "World", element); }