Search in sources :

Example 6 with Result

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

the class ResultPCFComparatorTest method compareDiffLastHold2.

@Test
void compareDiffLastHold2() throws Exception {
    Result result1 = new Result(DUMMY_ORDER, Piece.I, MinimalAction.create(0, 1, Rotate.Spawn), Piece.L);
    Result result2 = new Result(DUMMY_ORDER, Piece.I, MinimalAction.create(0, 1, Rotate.Spawn), null);
    ResultPCFComparator comparator = new ResultPCFComparator();
    // assert is not 0 & sign reversed
    assertThat(comparator.compare(result1, result2) * comparator.compare(result2, result1)).as(result1.toString()).isLessThan(0);
}
Also used : Result(common.datastore.Result) Test(org.junit.jupiter.api.Test)

Example 7 with Result

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

the class ResultPCFComparatorTest method compareDiffLastY.

@Test
void compareDiffLastY() throws Exception {
    Result result1 = new Result(DUMMY_ORDER, Piece.I, MinimalAction.create(0, 1, Rotate.Spawn), Piece.L);
    Result result2 = new Result(DUMMY_ORDER, Piece.I, MinimalAction.create(0, 4, Rotate.Spawn), Piece.L);
    ResultPCFComparator comparator = new ResultPCFComparator();
    // assert is not 0 & sign reversed
    assertThat(comparator.compare(result1, result2) * comparator.compare(result2, result1)).as(result1.toString()).isLessThan(0);
}
Also used : Result(common.datastore.Result) Test(org.junit.jupiter.api.Test)

Example 8 with Result

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

the class ResultPCFComparatorTest method compare2.

@Test
void compare2() throws Exception {
    Result result1 = new Result(DUMMY_ORDER, Piece.T, MinimalAction.create(8, 2, Rotate.Left), null);
    Result result2 = new Result(DUMMY_ORDER, Piece.T, MinimalAction.create(8, 2, Rotate.Left), null);
    ResultPCFComparator comparator = new ResultPCFComparator();
    assertThat(comparator.compare(result1, result2)).as(result1.toString()).isEqualTo(0);
    assertThat(comparator.compare(result2, result1)).as(result1.toString()).isEqualTo(0);
}
Also used : Result(common.datastore.Result) Test(org.junit.jupiter.api.Test)

Example 9 with Result

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

the class CheckmateNoHoldReuseTest method randomCheckmateOverBlock.

@Test
@LongTest
void randomCheckmateOverBlock() {
    Randoms randoms = new Randoms();
    for (int count = 0; count < 100; count++) {
        int maxClearLine = randoms.nextInt(3, 8);
        int maxDepth = randoms.nextIntClosed(5, 7);
        List<Piece> pieces = randoms.blocks(maxDepth + 1);
        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);
        }
    // 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)

Example 10 with Result

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

the class CheckmateNoHoldReuseTest method randomCheckmateOverMoreBlock.

@Test
@LongTest
void randomCheckmateOverMoreBlock() {
    Randoms randoms = new Randoms();
    for (int count = 0; count < 100; count++) {
        int maxClearLine = randoms.nextInt(3, 8);
        int maxDepth = randoms.nextIntClosed(5, 7);
        List<Piece> pieces = randoms.blocks(maxDepth + 10);
        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);
        }
        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