Files
paradigms/java/queue/QueueTest.java
2026-04-08 21:25:17 +03:00

52 lines
1.4 KiB
Java

package queue;
import static queue.Queues.*;
import base.Selector;
import base.TestCounter;
import java.util.List;
import java.util.function.Consumer;
/**
* @author Georgiy Korneev (kgeorgiy@kgeorgiy.info)
*/
public final class QueueTest {
public static final Selector SELECTOR = new Selector(QueueTest.class)
.variant("Base", variant(QueueModel.class, d -> () -> d))
.variant("3637", variant(ContainsModel.class, d -> () -> d, CONTAINS))
.variant("3839", variant(NthModel.class, d -> () -> d, NTH))
.variant(
"3435",
variant(RemoveIfModel.class, d -> () -> d, REMOVE_IF_TEST)
)
.variant(
"3233",
variant(RemoveEqModel.class, d -> () -> d, REMOVE_EQ_TEST)
);
private QueueTest() {}
public static void main(final String... args) {
SELECTOR.main(args);
}
/* package-private */ static <
M extends QueueModel,
T extends QueueChecker<M>
> Consumer<TestCounter> variant(
final Class<M> type,
final T tester,
final Queues.Splitter<M> splitter
) {
return new QueueTester<>(type, tester, splitter)::test;
}
/* package-private */ static <
M extends QueueModel,
T extends QueueChecker<M>
> Consumer<TestCounter> variant(final Class<M> type, final T tester) {
return variant(type, tester, (t, q, r) -> List.of());
}
}