use of org.junit.jupiter.params.ParameterizedTest in project solution-finder by knewjade.
the class CheckerUsingHoldInvokerTest method testSearch6.
@ParameterizedTest
@ArgumentsSource(InvokerTestCase.class)
void testSearch6(IntFunction<ConcurrentCheckerInvoker> invokerGenerator) throws Exception {
PatternGenerator blocksGenerator = new LoadedPatternGenerator("*p5");
int maxClearLine = 4;
int maxDepth = 4;
String marks = "" + "XXXXXX____" + "XXXXXX____" + "XXXXXX____" + "XXXXXX____" + "";
ConcurrentCheckerInvoker invoker = invokerGenerator.apply(maxClearLine);
AnalyzeTree tree = runTestCase(invoker, marks, blocksGenerator, maxClearLine, maxDepth);
// Source: twitter by @???
assertThat(tree.getSuccessPercent()).isEqualTo(1776 / 2520.0);
}
use of org.junit.jupiter.params.ParameterizedTest in project solution-finder by knewjade.
the class CheckerUsingHoldInvokerTest method random.
@LongTest
@ParameterizedTest
@ArgumentsSource(InvokerTestCase.class)
void random(IntFunction<ConcurrentCheckerInvoker> invokerGenerator) throws FinderExecuteException, SyntaxException {
Randoms randoms = new Randoms();
MinoFactory minoFactory = new MinoFactory();
MinoShifter minoShifter = new MinoShifter();
MinoRotation minoRotation = new MinoRotation();
PerfectValidator validator = new PerfectValidator();
CheckerUsingHold<Action> checker = new CheckerUsingHold<>(minoFactory, validator);
for (int count = 0; count < 20; count++) {
int maxClearLine = randoms.nextInt(3, 6);
int maxDepth = randoms.nextIntClosed(3, 5);
Candidate<Action> candidate = new LockedCandidate(minoFactory, minoShifter, minoRotation, maxClearLine);
Field field = randoms.field(maxClearLine, maxDepth);
PatternGenerator blocksGenerator = createPiecesGenerator(maxDepth);
List<Pieces> searchingPieces = blocksGenerator.blocksStream().collect(Collectors.toList());
Injector injector = Guice.createInjector(new BasicModule(maxClearLine));
ExecutorService executorService = injector.getInstance(ExecutorService.class);
ConcurrentCheckerInvoker invoker = invokerGenerator.apply(maxClearLine);
List<Pair<Pieces, Boolean>> resultPairs = invoker.search(field, searchingPieces, maxClearLine, maxDepth);
// 結果を集計する
AnalyzeTree tree1 = new AnalyzeTree();
for (Pair<Pieces, Boolean> resultPair : resultPairs) {
Pieces pieces1 = resultPair.getKey();
Boolean result = resultPair.getValue();
tree1.set(result, pieces1);
}
System.out.println(tree1.show());
executorService.shutdown();
AnalyzeTree tree = tree1;
for (Pieces pieces : searchingPieces) {
boolean check = checker.check(field, pieces.getPieces(), candidate, maxClearLine, maxDepth);
assertThat(tree.isSucceed(pieces)).isEqualTo(check);
}
}
}
use of org.junit.jupiter.params.ParameterizedTest in project solution-finder by knewjade.
the class PathRandomFileCaseTest method hold1.
@ParameterizedTest
@ArgumentsSource(Hold1TestCase.class)
@LongTest
void hold1(String command, int unique) throws Exception {
Log log = RunnerHelper.runnerCatchingLog(() -> EntryPointMain.main(command.split(" ")));
assertThat(log.getOutput()).contains(Messages.useHold()).contains(Messages.uniqueCount(unique));
}
use of org.junit.jupiter.params.ParameterizedTest in project solution-finder by knewjade.
the class PathRandomFileCaseTest method hold2.
@ParameterizedTest
@ArgumentsSource(Hold2TestCase.class)
@LongTest
void hold2(String command, int unique) throws Exception {
Log log = RunnerHelper.runnerCatchingLog(() -> EntryPointMain.main(command.split(" ")));
assertThat(log.getOutput()).contains(Messages.useHold()).contains(Messages.uniqueCount(unique));
}
use of org.junit.jupiter.params.ParameterizedTest in project solution-finder by knewjade.
the class PathRandomPatternFileCasesTest method reserved.
@ParameterizedTest
@ArgumentsSource(ReservedTestCase.class)
@LongTest
void reserved(String command, int unique, int success, int all) throws Exception {
Log log = RunnerHelper.runnerCatchingLog(() -> EntryPointMain.main(command.split(" ")));
assertThat(log.getOutput()).contains(Messages.pathCount(unique)).contains(Messages.success(success, all));
}
Aggregations