Search in sources :

Example 56 with LoadedPatternGenerator

use of common.pattern.LoadedPatternGenerator in project solution-finder by knewjade.

the class NormalEnumeratePiecesTest method enumerateNoHoldMulti.

@Test
void enumerateNoHoldMulti() throws Exception {
    PatternGenerator generator = new LoadedPatternGenerator(Arrays.asList("T, J, O, Z", "J, O, S, T", "T, J, O, I"));
    NormalEnumeratePieces core = new NormalEnumeratePieces(generator, 3, false);
    Set<LongPieces> pieces = core.enumerate();
    assertThat(pieces).hasSize(2);
    assertThat(core.getCounter()).isEqualTo(3);
}
Also used : PatternGenerator(common.pattern.PatternGenerator) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) LongPieces(common.datastore.blocks.LongPieces) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) Test(org.junit.jupiter.api.Test)

Example 57 with LoadedPatternGenerator

use of common.pattern.LoadedPatternGenerator in project solution-finder by knewjade.

the class NormalEnumeratePiecesTest method enumerateOverRandomNoHold.

@Test
void enumerateOverRandomNoHold() throws Exception {
    List<Piece> failedPieces = Arrays.asList(Piece.I, Piece.O, Piece.L, Piece.J, Piece.S, Piece.Z);
    List<Piece> allPieces = new ArrayList<>(Piece.valueList());
    for (int size = 1; size <= 7; size++) {
        PatternGenerator blocksGenerator = new LoadedPatternGenerator("T, *p" + size);
        NormalEnumeratePieces core = new NormalEnumeratePieces(blocksGenerator, size, false);
        Set<LongPieces> pieces = core.enumerate();
        for (int count = 0; count < 1000; count++) {
            List<Piece> sample = new ArrayList<>();
            sample.add(Piece.T);
            Collections.shuffle(allPieces);
            sample.addAll(allPieces.subList(0, size - 1));
            assertThat(new LongPieces(sample)).isIn(pieces);
            for (Piece piece : failedPieces) {
                sample.set(0, piece);
                assertThat(new LongPieces(sample)).isNotIn(pieces);
            }
        }
    }
}
Also used : PatternGenerator(common.pattern.PatternGenerator) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) Piece(core.mino.Piece) LongPieces(common.datastore.blocks.LongPieces) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) Test(org.junit.jupiter.api.Test)

Example 58 with LoadedPatternGenerator

use of common.pattern.LoadedPatternGenerator in project solution-finder by knewjade.

the class NormalEnumeratePiecesTest method enumerateHoldOverOne.

@Test
void enumerateHoldOverOne() throws Exception {
    PatternGenerator generator = new LoadedPatternGenerator("I, S, Z, O, T, J, L");
    NormalEnumeratePieces core = new NormalEnumeratePieces(generator, 4, true);
    Set<LongPieces> pieces = core.enumerate();
    assertThat(pieces).hasSize(1);
    assertThat(core.getCounter()).isEqualTo(1);
}
Also used : PatternGenerator(common.pattern.PatternGenerator) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) LongPieces(common.datastore.blocks.LongPieces) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) Test(org.junit.jupiter.api.Test)

Example 59 with LoadedPatternGenerator

use of common.pattern.LoadedPatternGenerator in project solution-finder by knewjade.

the class NormalEnumeratePiecesTest method enumerateNoHoldOver3.

@Test
void enumerateNoHoldOver3() throws Exception {
    PatternGenerator generator = new LoadedPatternGenerator("I, *p7");
    NormalEnumeratePieces core = new NormalEnumeratePieces(generator, 4, false);
    Set<LongPieces> pieces = core.enumerate();
    assertThat(pieces).hasSize(210);
    assertThat(core.getCounter()).isEqualTo(5040);
}
Also used : PatternGenerator(common.pattern.PatternGenerator) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) LongPieces(common.datastore.blocks.LongPieces) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) Test(org.junit.jupiter.api.Test)

Example 60 with LoadedPatternGenerator

use of common.pattern.LoadedPatternGenerator in project solution-finder by knewjade.

the class NormalEnumeratePiecesTest method enumerateNoHoldOver2.

@Test
void enumerateNoHoldOver2() throws Exception {
    PatternGenerator generator = new LoadedPatternGenerator("*p7");
    NormalEnumeratePieces core = new NormalEnumeratePieces(generator, 4, false);
    Set<LongPieces> pieces = core.enumerate();
    assertThat(pieces).hasSize(840);
    assertThat(core.getCounter()).isEqualTo(5040);
}
Also used : PatternGenerator(common.pattern.PatternGenerator) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) LongPieces(common.datastore.blocks.LongPieces) LoadedPatternGenerator(common.pattern.LoadedPatternGenerator) Test(org.junit.jupiter.api.Test)

Aggregations

LoadedPatternGenerator (common.pattern.LoadedPatternGenerator)61 PatternGenerator (common.pattern.PatternGenerator)61 Test (org.junit.jupiter.api.Test)35 LongPieces (common.datastore.blocks.LongPieces)31 AnalyzeTree (common.tree.AnalyzeTree)30 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)25 ArgumentsSource (org.junit.jupiter.params.provider.ArgumentsSource)25 Piece (core.mino.Piece)11 Randoms (lib.Randoms)8 LongTest (module.LongTest)7 HashSet (java.util.HashSet)4 Pieces (common.datastore.blocks.Pieces)2 Field (core.field.Field)2 MinoFactory (core.mino.MinoFactory)2 ArrayList (java.util.ArrayList)2 Injector (com.google.inject.Injector)1 Action (common.datastore.action.Action)1 LockedCandidateThreadLocal (concurrent.LockedCandidateThreadLocal)1 LockedReachableThreadLocal (concurrent.LockedReachableThreadLocal)1 LockedCandidate (core.action.candidate.LockedCandidate)1