示例#1
0
def test_queen_problem_with_four_queens():
    Coordinate = morpy.Coordinate
    dimensions = morpy.Dimensions(4, 4)
    pieces = 4 * morpy.QUEEN
    positions = morpy.get_positions_iter(dimensions, pieces)
    position_1 = morpy.Position(
        frozendict(
            {
                Coordinate(0, 2): morpy.QUEEN,
                Coordinate(1, 0): morpy.QUEEN,
                Coordinate(2, 3): morpy.QUEEN,
                Coordinate(3, 1): morpy.QUEEN,
            }
        ),
        dimensions,
    )
    position_2 = morpy.Position(
        frozendict(
            {
                Coordinate(0, 1): morpy.QUEEN,
                Coordinate(1, 3): morpy.QUEEN,
                Coordinate(2, 0): morpy.QUEEN,
                Coordinate(3, 2): morpy.QUEEN,
            }
        ),
        dimensions,
    )
    expected = (position_1, position_2)
    assert set(expected) == set(positions)
示例#2
0
def test_get_valid_positions_3_by_3_two_kings_one_rook_iter():
    Coordinate = morpy.Coordinate
    dimensions = morpy.Dimensions(3, 3)
    pieces = 2 * morpy.KING + morpy.ROOK
    positions = morpy.get_positions_iter(dimensions, pieces)
    position_1 = morpy.Position(
        frozendict({Coordinate(0, 1): morpy.ROOK, Coordinate(2, 0): morpy.KING, Coordinate(2, 2): morpy.KING}),
        dimensions,
    )
    position_2 = morpy.Position(
        frozendict({Coordinate(1, 0): morpy.ROOK, Coordinate(0, 2): morpy.KING, Coordinate(2, 2): morpy.KING}),
        dimensions,
    )
    position_3 = morpy.Position(
        frozendict({Coordinate(1, 2): morpy.ROOK, Coordinate(0, 0): morpy.KING, Coordinate(2, 0): morpy.KING}),
        dimensions,
    )
    position_4 = morpy.Position(
        frozendict({Coordinate(2, 1): morpy.ROOK, Coordinate(0, 0): morpy.KING, Coordinate(0, 2): morpy.KING}),
        dimensions,
    )
    expected = (position_1, position_2, position_3, position_4)
    assert set(expected) == set(positions)