Example #1
0
def test_transition_6_0():
	model = LoopModel()
	(state0, state6) = model.get_states_by_id([0, 6])
	model.set_current_state_by_state_id(6)
	reward = model.perform_action_a()
	assert model.current_state == state0
	assert reward == 0
def parse_model(s):
    if s == 'cm':
        return ChainModel()
    elif s == 'scm':
        return SlipperyChainModel()
    elif s == 'lm':
        return LoopModel()
    else:
        invalid()
def test_transition_6_0():
    model = LoopModel()
    (state0, state6) = model.get_states_by_id([0, 6])
    model.set_current_state_by_state_id(6)
    reward = model.perform_action_a()
    assert model.current_state == state0
    assert reward == 0
Example #4
0
def get_model(model_name):
    if model_name == "Chain":
        return ChainModel()
    elif model_name == "SlipperyChain":
        return SlipperyChainModel()
    elif model_name == "Chain2":
        return ChainModel2()
    elif model_name == "Loop":
        return LoopModel()
    elif model_name == "LoopDeadEnd":
        return LoopModelDeadEnd()
    elif model_name == "LoopDiffTrans":
        return LoopModelDiffTrans()
    elif model_name == "SpecialLoop":
        return SpecialLoopModel()
    else:
        raise Exception(model_name+ " not found")
def test_loop_a():
    model = LoopModel()
    (state0, state1, state2, state3,
     state4) = model.get_states_by_id([0, 1, 2, 3, 4])
    assert model.current_state == state0
    reward = model.perform_action_a()
    assert model.current_state == state1
    assert reward == 0
    reward = model.perform_action_a()
    assert model.current_state == state2
    assert reward == 0
    reward = model.perform_action_a()
    assert model.current_state == state3
    assert reward == 0
    reward = model.perform_action_a()
    assert model.current_state == state4
    assert reward == 0
    reward = model.perform_action_a()
    assert model.current_state == state0
    assert reward == 1
def test_loop_b():
    model = LoopModel()
    (state0, state5, state6, state7,
     state8) = model.get_states_by_id([0, 5, 6, 7, 8])
    assert model.current_state == state0
    reward = model.perform_action_b()
    assert model.current_state == state5
    assert reward == 0
    reward = model.perform_action_b()
    assert model.current_state == state6
    assert reward == 0
    reward = model.perform_action_b()
    assert model.current_state == state7
    assert reward == 0
    reward = model.perform_action_b()
    assert model.current_state == state8
    assert reward == 0
    reward = model.perform_action_a()
    assert model.current_state == state0
    assert reward == 2
Example #7
0
def test_loop_b():
	model = LoopModel()
	(state0, state5, state6, state7, state8) = model.get_states_by_id([0, 5, 6, 7, 8])
	assert model.current_state == state0
	reward = model.perform_action_b()
	assert model.current_state == state5
	assert reward == 0
	reward = model.perform_action_b()
	assert model.current_state == state6
	assert reward == 0
	reward = model.perform_action_b()
	assert model.current_state == state7
	assert reward == 0
	reward = model.perform_action_b()
	assert model.current_state == state8
	assert reward == 0
	reward = model.perform_action_a()
	assert model.current_state == state0
	assert reward == 2
Example #8
0
def test_loop_a():
	model = LoopModel()
	(state0, state1, state2, state3, state4) = model.get_states_by_id([0, 1, 2, 3, 4])
	assert model.current_state == state0
	reward = model.perform_action_a()
	assert model.current_state == state1
	assert reward == 0
	reward = model.perform_action_a()
	assert model.current_state == state2
	assert reward == 0
	reward = model.perform_action_a()
	assert model.current_state == state3
	assert reward == 0
	reward = model.perform_action_a()
	assert model.current_state == state4
	assert reward == 0	
	reward = model.perform_action_a()
	assert model.current_state == state0
	assert reward == 1
from RL_game import *
from LoopModel import *

if __name__ == '__main__':
    if len(sys.argv) > 1:
        f = open(sys.argv[1], 'w')
        run_game(LoopModel(), f)
    else:
        run_game(LoopModel())