Exemple #1
0
def test_different_color_and_shape():
    board = Board()
    tile1 = Tile(Color.RED, Shape.X)
    tile2 = Tile(Color.GREEN, Shape.CIRCLE)
    move = [(Position(0, 0), tile1), (Position(0, 1), tile2)]
    result = board.is_allowed(move)
    assert not result
Exemple #2
0
def testRepeatedMovePosition():
    tile1 = Tile(Color.RED, Shape.CIRCLE)
    tile2 = Tile(Color.RED, Shape.CLOVER)
    board = Board()
    move = [(Position(0, 0), tile1), (Position(0, 0), tile2)]
    result = board.is_allowed(move)
    assert not result
Exemple #3
0
def test_non_contiguous2():
    board = Board()
    tile1 = Tile(Color.RED, Shape.X)
    tile2 = Tile(Color.RED, Shape.CIRCLE)
    move = [(Position(0, 0), tile1), (Position(2, 0), tile2)]
    result = board.is_allowed(move)
    assert not result
Exemple #4
0
def test_duplicate_position():
    board = Board()
    tile1 = Tile(Color.RED, Shape.X)
    tile2 = Tile(Color.RED, Shape.DIAMOND)
    move = [(Position(0, 0), tile1), (Position(0, 0), tile2)]
    result = board.is_allowed(move)
    assert not result
Exemple #5
0
def testMoveOvershadowsExistingTile():
    tile1 = Tile(Color.RED, Shape.CIRCLE)
    tile2 = Tile(Color.RED, Shape.CLOVER)
    board = Board([(Position(0, 0), tile1), (Position(0, 1), tile2)])
    tile1 = Tile(Color.RED, Shape.DIAMOND)
    tile2 = Tile(Color.RED, Shape.SQUARE)
    move = [(Position(0, 1), tile1), (Position(1, 1), tile2)]
    result = board.is_allowed(move)
    assert not result
Exemple #6
0
def test_illegal_multi_tile_column():
    tile1 = Tile(Color.RED, Shape.X)
    tile2 = Tile(Color.RED, Shape.CIRCLE)
    board = Board([(Position(0, 0), tile1), (Position(0, 1), tile2)])
    tile1 = Tile(Color.YELLOW, Shape.X)
    tile2 = Tile(Color.YELLOW, Shape.CLOVER)
    result = board.is_allowed([(Position(1, 0), tile1), (Position(1,
                                                                  1), tile2)])
    assert not result
Exemple #7
0
def test_second_column_strike():
    tile1 = Tile(Color.RED, Shape.CIRCLE)
    tile2 = Tile(Color.RED, Shape.CLOVER)
    tile3 = Tile(Color.RED, Shape.DIAMOND)
    tile4 = Tile(Color.RED, Shape.CLOVER)
    placements = [(Position(0, 1), tile1), (Position(0, 0), tile2),
                  (Position(0, -1), tile3), (Position(1, -1), tile4)]
    board = Board(placements)
    tile5 = Tile(Color.RED, Shape.CLOVER)
    tile6 = Tile(Color.RED, Shape.CIRCLE)
    move = [(Position(1, 1), tile5), (Position(1, 2), tile6)]
    result = board.is_allowed(move)
    assert result
Exemple #8
0
def test_origin_diagonal(two_tiles):
    board = Board()
    move = [(Position(1, 1), two_tiles[0]), (Position(0, 0), two_tiles[1])]
    result = board.is_allowed(move)
    assert not result
Exemple #9
0
def test_origin_down(two_tiles):
    board = Board()
    move = [(Position(0, 0), two_tiles[0]), (Position(0, -1), two_tiles[1])]
    result = board.is_allowed(move)
    assert result
Exemple #10
0
def test_one_tile_belove_left_off_center(one_tile):
    board = Board()
    move = (Position(-1, -1), one_tile)
    result = board.is_allowed([move])
    assert not result
Exemple #11
0
def test_one_tile_above_right_off_center(one_tile):
    board = Board()
    move = (Position(1, 1), one_tile)
    result = board.is_allowed([move])
    assert not result
Exemple #12
0
def test_one_tile_in_cener(one_tile):
    board = Board()
    move = (Position(0, 0), one_tile)
    result = board.is_allowed([move])
    assert result