Ejemplo n.º 1
0
def test_Highest_Score__Two_Disks_Exploding_At_Last_Drop(score, max_score):
    """Function highest_score: Two disks, highest score when exploding at last drop."""
    max_score.value += 12
    try:
        set_up()
        test_board = Board.init_board \
            (dimension=4, given_disks= \
                ([wrapped_disk_value_1, ],
                 [wrapped_disk_value_4, cracked_disk_value_2, cracked_disk_value_3],
                 [cracked_disk_value_3_B],
                 [wrapped_disk_value_4_B]))
        test_board_alias = Board.init_board \
            (dimension=4, given_disks= \
                ([wrapped_disk_value_1, ],
                 [wrapped_disk_value_4, cracked_disk_value_2, cracked_disk_value_3],
                 [cracked_disk_value_3_B],
                 [wrapped_disk_value_4_B]))
        test_board_copy = Board.get_board_copy(test_board)
        highest_score, columns = Drop7.highest_score(
            test_board, [wrapped_disk_value_3_B, visible_disk_value_3])
        assert highest_score == 14
        assert columns == [1, 1]
        assert are_identical_boards(test_board, test_board_alias)
        assert are_equal_boards(test_board, test_board_copy)
        score.value += 12
    except:
        pass
Ejemplo n.º 2
0
def test_Highest_Score__Single_Disk_Several_Explosions(score, max_score):
    """Function highest_score: Single exploding disk, with same high score in several columns."""
    max_score.value += 10
    try:
        set_up()
        test_board = Board.init_board \
            (dimension=4, given_disks= \
                ([cracked_disk_value_2, ],
                 [wrapped_disk_value_1, wrapped_disk_value_4],
                 [wrapped_disk_value_3, cracked_disk_value_4, wrapped_disk_value_2, visible_disk_value_2],
                 [cracked_disk_value_1]))
        test_board_alias = Board.init_board \
            (dimension=4, given_disks= \
                ([cracked_disk_value_2, ],
                 [wrapped_disk_value_1, wrapped_disk_value_4],
                 [wrapped_disk_value_3, cracked_disk_value_4, wrapped_disk_value_2, visible_disk_value_2],
                 [cracked_disk_value_1]))
        test_board_copy = Board.get_board_copy(test_board)
        highest_score, columns = Drop7.highest_score(test_board,
                                                     [visible_disk_value_2_B])
        assert highest_score == 10
        assert columns == [4]
        assert are_identical_boards(test_board, test_board_alias)
        assert are_equal_boards(test_board, test_board_copy)
        score.value += 10
    except:
        pass
Ejemplo n.º 3
0
def test_Highest_Score__NoDisks(score, max_score):
    """Function highest_score: No disks."""
    max_score.value += 3
    try:
        set_up()
        test_board_4_copy = Board.get_board_copy(test_board_4)
        highest_score, columns = Drop7.highest_score(test_board_4, [])
        assert highest_score == 0
        assert len(columns) == 0
        assert are_identical_boards(test_board_4, test_board_4_alias)
        assert are_equal_boards(test_board_4, test_board_4_copy)
        score.value += 3
    except:
        pass
Ejemplo n.º 4
0
def test_Highest_Score__Single_Disk_No_Explosions(score, max_score):
    """Function highest_score: Single disk, no explosions."""
    max_score.value += 4
    try:
        set_up()
        test_board_4_copy = Board.get_board_copy(test_board_4)
        highest_score, columns = Drop7.highest_score(test_board_4,
                                                     [visible_disk_value_4])
        assert highest_score == 0
        assert columns == [1]
        assert are_identical_boards(test_board_4, test_board_4_alias)
        assert are_equal_boards(test_board_4, test_board_4_copy)
        score.value += 4
    except:
        pass
Ejemplo n.º 5
0
def test_Highest_Score__Several_Disks_Case_2(score, max_score):
    """Function highest_score: Several disks, case 2."""
    # This test takes quite some time.
    max_score.value += 40
    try:
        set_up()
        test_board = Board.init_board \
            (dimension=6, given_disks= \
                ([cracked_disk_value_1, cracked_disk_value_2, cracked_disk_value_3,
                  cracked_disk_value_4, cracked_disk_value_5],
                 [visible_disk_value_3, wrapped_disk_value_4, cracked_disk_value_2_B,
                  visible_disk_value_5],
                 [],
                 [wrapped_disk_value_2_B, visible_disk_value_1],
                 [visible_disk_value_6, visible_disk_value_4, visible_disk_value_3_C,
                  visible_disk_value_2, visible_disk_value_2_B],
                 [visible_disk_value_4_B, cracked_disk_value_4_C, wrapped_disk_value_3]))
        test_board_alias = Board.init_board \
            (dimension=6, given_disks= \
                ([cracked_disk_value_1, cracked_disk_value_2, cracked_disk_value_3,
                  cracked_disk_value_4, cracked_disk_value_5],
                 [visible_disk_value_3, wrapped_disk_value_4, cracked_disk_value_2_B,
                  visible_disk_value_5],
                 [],
                 [wrapped_disk_value_2_B, visible_disk_value_1],
                 [visible_disk_value_6, visible_disk_value_4, visible_disk_value_3_C,
                  visible_disk_value_2, visible_disk_value_2_B],
                 [visible_disk_value_4_B, cracked_disk_value_4_C, wrapped_disk_value_3]))
        test_board_copy = Board.get_board_copy(test_board)
        highest_score, columns = Drop7.highest_score(test_board, [
            wrapped_disk_value_3_B, visible_disk_value_6_B,
            visible_disk_value_5_B, wrapped_disk_value_4_B
        ])
        assert highest_score == 1164
        assert columns == [6, 5, 3, 2]
        assert are_identical_boards(test_board, test_board_alias)
        assert are_equal_boards(test_board, test_board_copy)
        score.value += 40
    except:
        pass
Ejemplo n.º 6
0
def test_Highest_Score__Too_Many_Disks(score, max_score):
    """Function highest_score: Too many disks."""
    max_score.value += 6
    try:
        set_up()
        test_board = Board.init_board \
            (dimension=2, given_disks= \
                ([cracked_disk_value_1, ],
                 [cracked_disk_value_1_B, ]))
        test_board_alias = Board.init_board \
            (dimension=2, given_disks= \
                ([cracked_disk_value_1, ],
                 [cracked_disk_value_1_B, ]))
        test_board_copy = Board.get_board_copy(test_board)
        highest_score, columns = \
            Drop7.highest_score(test_board, [wrapped_disk_value_1, wrapped_disk_value_2, visible_disk_value_1])
        assert highest_score is None
        assert columns is None
        assert are_identical_boards(test_board, test_board_alias)
        assert are_equal_boards(test_board, test_board_copy)
        score.value += 6
    except:
        pass
Ejemplo n.º 7
0
             (),
             (wrapped_disk_value_3_D, visible_disk_value_3)))

    test_board_6_alias = Board.init_board \
        (dimension=6, given_disks= \
            ((wrapped_disk_value_3,),
             (wrapped_disk_value_3_B, visible_disk_value_4),
             (visible_disk_value_5, visible_disk_value_4_B, visible_disk_value_1),
             (visible_disk_value_1_B, cracked_disk_value_1, visible_disk_value_6,
              wrapped_disk_value_3_C, cracked_disk_value_1_B),
             (),
             (wrapped_disk_value_3_D, visible_disk_value_3)))


set_up()
test_board = Board.init_board \
    (dimension=2, given_disks= \
        ([cracked_disk_value_1, ],
         [cracked_disk_value_1_B, ]))
test_board_alias = Board.init_board \
    (dimension=2, given_disks= \
        ([cracked_disk_value_1, ],
         [cracked_disk_value_1_B, ]))
test_board_copy = Board.get_board_copy(test_board)
highest_score, columns = \
    Drop7.highest_score(test_board, [wrapped_disk_value_1, wrapped_disk_value_2, visible_disk_value_1])
assert highest_score is None
assert columns is None
assert Drop7_Test.are_identical_boards(test_board, test_board_alias)
assert Drop7_Test.are_equal_boards(test_board, test_board_copy)