package wspp; import base.Named; import base.Selector; import java.util.Comparator; import java.util.Map; import java.util.function.IntFunction; import java.util.stream.IntStream; /** * @author Georgiy Korneev (kgeorgiy@kgeorgiy.info) */ public final class WsppTest { // === Base private static final Named>> INPUT = Named.of("", Comparator.comparingInt(e -> 0)); private static final Named> ALL = Named.of("", size -> IntStream.range(0, size)); private static final Named> WSPP = Named.of("", (r, l, L, g, G) -> g); private static final Named NONE = Named.of("", ""); // === 3637 private static final Named>> LENGTH = Named.of("", Map.Entry.comparingByKey(Comparator.comparingInt(String::length))); private static final Named> LAST = Named.of("Last", size -> IntStream.of(size - 1)); private static final Named JAVA = Named.of("", "XHB7TmR9JF8="); // === 3839 private static final Named> MIDDLE = Named.of("Middle", size -> IntStream.of(size / 2)); // === 3435 public static final WsppTester.Extractor POSITION = (r, l, L, g, G) -> r + ":" + (G - g + 1); // === Common public static final Selector SELECTOR = new Selector(WsppTester.class) .variant("Base", WsppTester.variant(INPUT, ALL, WSPP, NONE)) .variant("3637", WsppTester.variant(LENGTH, LAST, WSPP, JAVA)) .variant("3839", WsppTester.variant(LENGTH, MIDDLE, WSPP, JAVA)) .variant("3435", WsppTester.variant(LENGTH, ALL, Named.of("Position", POSITION), JAVA)) .variant("3233", WsppTester.variant(INPUT, ALL, Named.of("Pos", POSITION), JAVA)) .variant("4142", WsppTester.variant(LENGTH, LAST, WSPP, JAVA)) .variant("4749", WsppTester.variant(LENGTH, ALL, Named.of("Position", POSITION), JAVA)) ; private WsppTest() { } public static void main(final String... args) { SELECTOR.main(args); } }