예제 #1
0
def test_cpuagent_generates_random_moves():
    agent = CPUAgent()
    new_grid = np.array([1, 2, 1, 2, 1, 2, 1, 0, 0])
    agent.update_grid(new_grid)

    generated_moves = set()
    for _ in range(10):
        generated_moves.add(agent.get_random_move())

    assert len(generated_moves) == 2
    assert Action.bottom_center in generated_moves
    assert Action.bottom_right in generated_moves
예제 #2
0
def test_cpuagent_generates_best_move_correctly():
    agent = CPUAgent()
    new_grid = np.array([1, 2, 1, 2, 1, 2, 1, 0, 0])
    agent.update_grid(new_grid)

    agent.current_state.next_states_values = np.array([-1, 1])

    generated_moves = set()
    for _ in range(10):
        generated_moves.add(agent.get_best_move())

    assert len(generated_moves) == 1
    assert Action.bottom_center not in generated_moves
    assert Action.bottom_right in generated_moves
예제 #3
0
def test_cpuagent_updates_grid_correctly():
    agent = CPUAgent()
    new_grid = np.array([1, 2, 1, 2, 1, 2, 1, 0, 0])
    agent.update_grid(new_grid)

    assert_array_equal(new_grid, agent.grid)
    assert_array_equal(new_grid, agent.current_state.grid)

    assert_array_equal(agent.current_state.next_states_values, np.array([0, 0]))
    assert_array_equal(agent.current_state.next_states_transitions, np.array([Action.bottom_center,
                                                                              Action.bottom_right]))

    assert len(agent.states) == 1

    new_state = agent.states[0]
    assert_array_equal(new_grid, new_state.grid)
    assert_array_equal(new_state.next_states_values, np.array([0, 0]))
    assert_array_equal(new_state.next_states_transitions, np.array([Action.bottom_center, Action.bottom_right]))