mirror of
https://github.com/gsi-upm/soil
synced 2025-08-23 19:52:19 +00:00
Refactor
* Removed references to `set_state` * Split some functionality from `agents` into separate files (`fsm` and `network_agents`) * Rename `neighboring_agents` to `neighbors` * Delete some spurious functions
This commit is contained in:
@@ -45,3 +45,17 @@ class TestMain(TestCase):
|
||||
for i in range(5):
|
||||
t = g.step()
|
||||
assert t == i
|
||||
|
||||
def test_state_decorator(self):
|
||||
class MyAgent(agents.FSM):
|
||||
run = 0
|
||||
@agents.default_state
|
||||
@agents.state('original')
|
||||
def root(self):
|
||||
self.run += 1
|
||||
e = environment.Environment()
|
||||
a = MyAgent(model=e, unique_id=e.next_id())
|
||||
a.step()
|
||||
assert a.run == 1
|
||||
a.step()
|
||||
assert a.run == 2
|
||||
|
@@ -160,32 +160,12 @@ class TestMain(TestCase):
|
||||
|
||||
def test_serialize_agent_class(self):
|
||||
"""A class from soil.agents should be serialized without the module part"""
|
||||
ser = agents.serialize_type(CustomAgent)
|
||||
ser = agents._serialize_type(CustomAgent)
|
||||
assert ser == "test_main.CustomAgent"
|
||||
ser = agents.serialize_type(agents.BaseAgent)
|
||||
ser = agents._serialize_type(agents.BaseAgent)
|
||||
assert ser == "BaseAgent"
|
||||
pickle.dumps(ser)
|
||||
|
||||
def test_deserialize_agent_distribution(self):
|
||||
agent_distro = [
|
||||
{"agent_class": "CounterModel", "weight": 1},
|
||||
{"agent_class": "test_main.CustomAgent", "weight": 2},
|
||||
]
|
||||
converted = agents.deserialize_definition(agent_distro)
|
||||
assert converted[0]["agent_class"] == agents.CounterModel
|
||||
assert converted[1]["agent_class"] == CustomAgent
|
||||
pickle.dumps(converted)
|
||||
|
||||
def test_serialize_agent_distribution(self):
|
||||
agent_distro = [
|
||||
{"agent_class": agents.CounterModel, "weight": 1},
|
||||
{"agent_class": CustomAgent, "weight": 2},
|
||||
]
|
||||
converted = agents.serialize_definition(agent_distro)
|
||||
assert converted[0]["agent_class"] == "CounterModel"
|
||||
assert converted[1]["agent_class"] == "test_main.CustomAgent"
|
||||
pickle.dumps(converted)
|
||||
|
||||
def test_templates(self):
|
||||
"""Loading a template should result in several configs"""
|
||||
configs = serialization.load_file(join(EXAMPLES, "template.yml"))
|
||||
|
Reference in New Issue
Block a user