Search in sources :

Example 21 with Result

use of common.datastore.Result in project solution-finder by knewjade.

the class CheckmateUsingHoldReuseTest method randomCheckmateWithJustBlock.

@Test
@LongTest
void randomCheckmateWithJustBlock() {
    Randoms randoms = new Randoms();
    for (int count = 0; count < 25; count++) {
        int maxClearLine = randoms.nextInt(3, 8);
        int maxDepth = randoms.nextIntClosed(5, 7);
        List<Piece> pieces = randoms.blocks(maxDepth);
        Field field = randoms.field(maxClearLine, maxDepth);
        Candidate<Action> candidate = new LockedCandidate(minoFactory, minoShifter, minoRotation, maxClearLine);
        Stopwatch stopwatchNoUse = Stopwatch.createStoppedStopwatch();
        Stopwatch stopwatchReuse = Stopwatch.createStoppedStopwatch();
        for (int swap = 0; swap < 250; swap++) {
            int index = randoms.nextInt(3, pieces.size());
            Piece pop = pieces.remove(index);
            pieces.add(pop);
            stopwatchNoUse.start();
            List<Result> result1 = checkmate.search(field, pieces, candidate, maxClearLine, maxDepth);
            stopwatchNoUse.stop();
            stopwatchReuse.start();
            List<Result> result2 = checkmateReuse.search(field, pieces, candidate, maxClearLine, maxDepth);
            stopwatchReuse.stop();
            assertThat(result2).hasSameSizeAs(result1).containsAll(result1);
        }
    // TODO:
    // assertThat(stopwatchReuse.getNanoAverageTime()).isLessThan(stopwatchNoUse.getNanoAverageTime());
    }
}
Also used : Field(core.field.Field) LockedCandidate(core.action.candidate.LockedCandidate) Randoms(lib.Randoms) Action(common.datastore.action.Action) Piece(core.mino.Piece) Stopwatch(lib.Stopwatch) Result(common.datastore.Result) Test(org.junit.jupiter.api.Test) LongTest(module.LongTest) LongTest(module.LongTest)

Aggregations

Result (common.datastore.Result)21 Test (org.junit.jupiter.api.Test)19 Action (common.datastore.action.Action)9 Field (core.field.Field)9 Piece (core.mino.Piece)9 LockedCandidate (core.action.candidate.LockedCandidate)8 Randoms (lib.Randoms)8 Stopwatch (lib.Stopwatch)8 LongTest (module.LongTest)8 OperationHistory (common.OperationHistory)1 Pair (common.datastore.Pair)1 ReadOnlyListPieces (common.datastore.blocks.ReadOnlyListPieces)1 NormalOrder (common.datastore.order.NormalOrder)1 Order (common.datastore.order.Order)1 Mino (core.mino.Mino)1 ArrayList (java.util.ArrayList)1 Disabled (org.junit.jupiter.api.Disabled)1