def test_taking_correct_actions(): """Does the environment correctly change the state when told to take an action with and without stochasticity?""" random.seed() environment = CombinationLock(3, 3, 6, 0.0, [1, 5, 4]) assert environment.actions_from_state(0) == [] assert environment.actions_from_state(1) == [1] assert environment.actions_from_state(2) == [1, 5] assert environment.actions_from_state(3) == [1, 5, 4] assert not environment.is_terminal([]) # Deterministic tests state1 = environment.next_state(environment.initial_state(), 1) assert state1 == 1 assert not environment.is_terminal(environment.actions_from_state(state1)) state2 = environment.next_state(state1, 5) assert state2 == 2 assert not environment.is_terminal(environment.actions_from_state(state2)) state3 = environment.next_state(state2, 4) assert state3 == 3 assert environment.is_terminal(environment.actions_from_state(state3) + [2]) state4 = environment.next_state(state3, 4) assert state4 == 0 assert not environment.is_terminal(environment.actions_from_state(state4)) assert environment.is_terminal([2])
def test_taking_correct_actions(): """Does the environment correctly change the state when told to take an action with and without stochasticity?""" random.seed() environment = CombinationLock(3, 3, 6, 0.0, [1, 5, 4]) assert environment.actions_from_state(0) == [] assert environment.actions_from_state(1) == [1] assert environment.actions_from_state(2) == [1, 5] assert environment.actions_from_state(3) == [1, 5, 4] assert not environment.is_terminal([]) # Deterministic tests state1 = environment.next_state(environment.initial_state(), 1) assert state1 == 1 assert not environment.is_terminal(environment.actions_from_state(state1)) state2 = environment.next_state(state1, 5) assert state2 == 2 assert not environment.is_terminal(environment.actions_from_state(state2)) state3 = environment.next_state(state2, 4) assert state3 == 3 assert environment.is_terminal( environment.actions_from_state(state3) + [2]) state4 = environment.next_state(state3, 4) assert state4 == 0 assert not environment.is_terminal(environment.actions_from_state(state4)) assert environment.is_terminal([2])