示例#1
0
def test__undiscovered_blob_size() -> None:
    """ Test the BlobGoal class' _undiscovered_blob_size method. """
    goal1 = BlobGoal((0, 0, 0))
    pos1 = (0, 0)
    board1 = [[(0, 0, 0), (0, 0, 0)],
              [(0, 0, 0), (0, 0, 0)]]
    visited1 = [[-1, -1],
                [-1, -1]]

    assert goal1._undiscovered_blob_size(pos1, board1, visited1) == 4

    assert visited1 == [[1, 1], [1, 1]]

    assert goal1._undiscovered_blob_size(pos1, board1, visited1) == 0

    goal2 = BlobGoal((0, 255, 0))
    pos2 = (0, 0)
    board2 = [[(0, 255, 0), (0, 0, 0)],
              [(0, 0, 0), (0, 255, 0)]]
    visited2 = [[-1, -1],
                [-1, -1]]

    assert goal2._undiscovered_blob_size(pos2, board2, visited2) == 1

    assert visited2 == [[1, 0], [0, -1]]

    assert goal2._undiscovered_blob_size(pos2, board2, visited2) == 0

    goal3 = goal1  # (0, 0, 0)
    pos3 = (1, 1)
    board3 = [[(0, 255, 0), (0, 0, 0), (0, 255, 0)],
              [(0, 0, 0), (0, 255, 0), (0, 255, 0)],
              [(0, 255, 0), (0, 0, 0), (0, 255, 0)]]
    visited3 = [[-1, -1, -1],
                [-1, -1, -1],
                [-1, -1, -1]]

    assert goal3._undiscovered_blob_size(pos3, board3, visited3) == 0

    assert visited3 == [[-1, -1, -1], [-1, 0, -1], [-1, -1, -1]]

    assert goal3._undiscovered_blob_size(pos3, board3, visited3) == 0

    goal4 = goal1  # (0, 0, 0)
    pos4 = (0, 1)
    board4 = [[(0, 0, 0), (0, 0, 0), (0, 255, 0)],
              [(0, 0, 0), (0, 255, 0), (0, 255, 0)],
              [(0, 0, 0), (0, 0, 0), (0, 255, 0)]]
    visited4 = [[1, -1, -1],
                [-1, -1, -1],
                [-1, 1, -1]]

    assert goal4._undiscovered_blob_size(pos4, board4, visited4) == 1

    assert visited4 == [[1, 1, 0], [-1, 0, -1], [-1, 1, -1]]

    assert goal4._undiscovered_blob_size(pos4, board4, visited4) == 0
示例#2
0
def test_undiscovered_blob_size2() -> None:
    blocky = Block((0, 0), 16, (199, 44, 58), 0, 1)
    by = _flatten(blocky)
    block = Block((0, 0), 16, None, 0, 1)
    b1 = Block((8, 0), 8, (1, 128, 181), 1, 1)
    b2 = Block((0, 0), 8, (199, 44, 58), 1, 1)
    b3 = Block((0, 8), 8, (1, 128, 181), 1, 1)
    b4 = Block((8, 8), 8, (255, 211, 92), 1, 1)
    block.children = [b1, b2, b3, b4]
    fb = _flatten(block)
    goal1 = BlobGoal((199, 44, 58))
    goal2 = BlobGoal((1, 128, 181))
    v = [[-1, -1], [-1, -1]]
    b = [[-1, -1], [-1, -1]]
    assert goal1._undiscovered_blob_size((0, 0), by, v) == 4
    assert goal2._undiscovered_blob_size((0, 1), fb, b) == 1
示例#3
0
 def test__undiscovered_blob_size_one_colour_one_block(self) -> None:
     board = [[COLOUR_LIST[0]]]
     visited = [[-1]]
     pos = (0, 0)
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 1
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
示例#4
0
def test_undiscovered_blob_size() -> None:
    board = [[(199, 44, 58), (199, 44, 58), (199, 44, 58), (255, 211, 92)],
             [(199, 44, 58), (199, 44, 58), (1, 128, 181), (199, 44, 58)],
             [(1, 128, 181), (1, 128, 181), (199, 44, 58), (255, 211, 92)],
             [(1, 128, 181), (1, 128, 181), (255, 211, 92), (199, 44, 58)]]
    visited = [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1],
               [-1, -1, -1, -1]]
    pos = (0, 2)
    goal1 = BlobGoal((199, 44, 58))
    result = goal1._undiscovered_blob_size(pos, board, visited)
    assert result == 5
    assert visited[1][1] == 1
示例#5
0
文件: test.py 项目: jaspermai/Blocky
def test_blobgoal__undiscovered_blob_size() -> None:
    """Test BlobGoal._undiscovered_blob_size.
    - gives largest blob of the colour and position
    - updates visited
    """
    block = Block((0, 0), 100, (1, 128, 181), 0, 1)
    assert block.smash()
    block.children[0].colour = (1, 128, 181)
    block.children[1].colour = (1, 128, 181)
    block.children[2].colour = (0, 0, 0)
    block.children[3].colour = (0, 0, 0)
    goal = BlobGoal((1, 128, 181))
    flattened = _flatten(block)
    visited = [[-1, -1], [-1, -1]]
    assert goal._undiscovered_blob_size((1, 0), flattened, visited) == 2
    assert visited == [[1, 0], [1, 0]]
示例#6
0
 def test__undiscovered_blob_size_two_colours_four_blocks(self) -> None:
     board = [[COLOUR_LIST[0], COLOUR_LIST[0]],
              [COLOUR_LIST[1], COLOUR_LIST[1]]]
     visited = [[-1, -1], [-1, -1]]
     pos = (0, 0)
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 2
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     pos = (0, 1)
     visited = [[-1, -1], [-1, -1]]
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 2
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     pos = (1, 0)
     visited = [[-1, -1], [-1, -1]]
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 2
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     pos = (1, 1)
     visited = [[-1, -1], [-1, -1]]
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 2
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
示例#7
0
 def test__undiscovered_blob_size_multiple_levels(self) -> None:
     board = [
         [COLOUR_LIST[0], COLOUR_LIST[0], COLOUR_LIST[1], COLOUR_LIST[1]],
         [COLOUR_LIST[0], COLOUR_LIST[0], COLOUR_LIST[1], COLOUR_LIST[1]],
         [COLOUR_LIST[2], COLOUR_LIST[2], COLOUR_LIST[2], COLOUR_LIST[0]],
         [COLOUR_LIST[2], COLOUR_LIST[2], COLOUR_LIST[0], COLOUR_LIST[0]]
     ]
     visited = [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1],
                [-1, -1, -1, -1]]
     pos = (0, 0)
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 4
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     pos = (0, 3)
     visited = [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1],
                [-1, -1, -1, -1]]
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 4
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     pos = (3, 0)
     visited = [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1],
                [-1, -1, -1, -1]]
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 5
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     pos = (3, 3)
     visited = [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1],
                [-1, -1, -1, -1]]
     goal = BlobGoal(COLOUR_LIST[0])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 3
     goal = BlobGoal(COLOUR_LIST[1])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[2])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0
     goal = BlobGoal(COLOUR_LIST[3])
     score = goal._undiscovered_blob_size(pos, board, visited)
     assert score == 0