Search in sources :

Example 31 with Mino

use of core.mino.Mino in project solution-finder by knewjade.

the class SmallFieldTest method testPutAndRemovePiece.

@Test
void testPutAndRemovePiece() throws Exception {
    SmallField field = FieldFactory.createSmallField();
    int maxFieldHeight = field.getMaxFieldHeight();
    ArrayList<OriginalPiece> pieces = createAllPieces(maxFieldHeight);
    for (OriginalPiece piece : pieces) {
        // Initialize
        Mino mino = piece.getMino();
        int x = piece.getX();
        int y = piece.getY();
        // Expect
        SmallField expected = FieldFactory.createSmallField();
        expected.put(mino, x, y);
        // Test
        field.put(piece);
        assertThat(field).as("%s (%d, %d)", mino, x, y).isEqualTo(expected);
        field.remove(piece);
        assertThat(field.isPerfect()).as("%s (%d, %d)", mino, x, y).isTrue();
    }
}
Also used : Mino(core.mino.Mino) OriginalPiece(core.neighbor.OriginalPiece) Test(org.junit.jupiter.api.Test)

Example 32 with Mino

use of core.mino.Mino in project solution-finder by knewjade.

the class SmallFieldTest method testCanReachOnHarddrop2.

@Test
void testCanReachOnHarddrop2() throws Exception {
    Randoms randoms = new Randoms();
    SmallField field = createRandomSmallField(randoms);
    String string = FieldView.toString(field);
    ArrayList<OriginalPiece> pieces = createAllPieces(field.getMaxFieldHeight());
    for (OriginalPiece piece : pieces) {
        Mino mino = piece.getMino();
        int x = piece.getX();
        int y = piece.getY();
        assertThat(field.canReachOnHarddrop(piece)).as(string + piece.toString()).isEqualTo(field.canPut(mino, x, y) && field.canReachOnHarddrop(mino, x, y));
    }
}
Also used : Randoms(lib.Randoms) Mino(core.mino.Mino) OriginalPiece(core.neighbor.OriginalPiece) Test(org.junit.jupiter.api.Test)

Example 33 with Mino

use of core.mino.Mino in project solution-finder by knewjade.

the class SmallFieldTest method testCanPutPiece.

@Test
void testCanPutPiece() {
    Randoms randoms = new Randoms();
    SmallField field = createRandomSmallField(randoms);
    int maxFieldHeight = field.getMaxFieldHeight();
    ArrayList<OriginalPiece> pieces = createAllPieces(maxFieldHeight);
    for (OriginalPiece piece : pieces) {
        Mino mino = piece.getMino();
        int x = piece.getX();
        int y = piece.getY();
        assertThat(field.canPut(piece)).as("%s (%d, %d)", mino, x, y).isEqualTo(field.canPut(mino, x, y));
    }
}
Also used : Randoms(lib.Randoms) Mino(core.mino.Mino) OriginalPiece(core.neighbor.OriginalPiece) Test(org.junit.jupiter.api.Test)

Example 34 with Mino

use of core.mino.Mino in project solution-finder by knewjade.

the class SmallFieldTest method testPutAndRemoveMino.

@Test
void testPutAndRemoveMino() throws Exception {
    Field field = FieldFactory.createSmallField();
    field.put(new Mino(Piece.T, Rotate.Spawn), 1, 0);
    assertThat(field.isEmpty(0, 0)).isFalse();
    assertThat(field.isEmpty(1, 0)).isFalse();
    assertThat(field.isEmpty(2, 0)).isFalse();
    assertThat(field.isEmpty(1, 1)).isFalse();
    field.remove(new Mino(Piece.T, Rotate.Spawn), 1, 0);
    assertThat(field.isPerfect()).isTrue();
}
Also used : Mino(core.mino.Mino) Test(org.junit.jupiter.api.Test)

Example 35 with Mino

use of core.mino.Mino in project solution-finder by knewjade.

the class SmallFieldTest method testCanPutMino.

@Test
void testCanPutMino() throws Exception {
    String marks = "" + "___X______" + "___XX_____" + "__X_X_____" + "X___X_____" + "__X_XX____" + "";
    Field field = FieldFactory.createSmallField(marks);
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Spawn), 5, 4)).isTrue();
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Right), 1, 1)).isTrue();
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Reverse), 1, 3)).isTrue();
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Left), 3, 1)).isTrue();
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Spawn), 3, 0)).isFalse();
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Right), 0, 1)).isFalse();
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Reverse), 1, 1)).isFalse();
    assertThat(field.canPut(new Mino(Piece.T, Rotate.Left), 1, 1)).isFalse();
}
Also used : Mino(core.mino.Mino) Test(org.junit.jupiter.api.Test)

Aggregations

Mino (core.mino.Mino)103 Test (org.junit.jupiter.api.Test)46 Rotate (core.srs.Rotate)27 Field (core.field.Field)24 Piece (core.mino.Piece)20 Randoms (lib.Randoms)16 MinoFactory (core.mino.MinoFactory)14 ColorType (common.tetfu.common.ColorType)12 ColoredField (common.tetfu.field.ColoredField)12 ArrayList (java.util.ArrayList)12 FullOperationWithKey (common.datastore.FullOperationWithKey)9 HashSet (java.util.HashSet)9 ColorConverter (common.tetfu.common.ColorConverter)8 OriginalPiece (core.neighbor.OriginalPiece)8 List (java.util.List)8 MinoOperationWithKey (common.datastore.MinoOperationWithKey)7 OperationWithKey (common.datastore.OperationWithKey)7 TetfuPage (common.tetfu.TetfuPage)7 Arrays (java.util.Arrays)7 Collectors (java.util.stream.Collectors)7