diff --git a/pyAmakCore/tests/memory_leak/main.py b/pyAmakCore/tests/memory_leak/main.py index 189fad630707dcfbb9f06245fb3368bceadd0324..c10531dfdc86e856159032f6f1ae1ce402d005fa 100644 --- a/pyAmakCore/tests/memory_leak/main.py +++ b/pyAmakCore/tests/memory_leak/main.py @@ -4,25 +4,18 @@ from pyAmakCore.classes.agent import Agent class SimpleAgent(Agent): - """ - test - """ + pass class SimpleAmas(Amas): - """ - test - """ def on_initial_agents_creation(self) -> None: for i in range(10): - self.add_agent(Agent(self)) + self.add_agent(SimpleAgent(self)) class SimpleEnv(Environment): - """ - test - """ + pass env = SimpleEnv() @@ -31,8 +24,3 @@ amas = SimpleAmas(env) amas.put_token() amas.start() - - -""" -There are no visible memory leak in pyAmakCore -""" \ No newline at end of file diff --git a/pyAmakCore/tests/test_pickle/filename.pickle b/pyAmakCore/tests/test_pickle/filename.pickle new file mode 100644 index 0000000000000000000000000000000000000000..4935095a1a46c353105a9dbb82d1d562a8346b89 Binary files /dev/null and b/pyAmakCore/tests/test_pickle/filename.pickle differ diff --git a/pyAmakCore/tests/test_pickle/main.py b/pyAmakCore/tests/test_pickle/main.py new file mode 100644 index 0000000000000000000000000000000000000000..77ddde8c581741890d5ee31b38c0479185f0bfe2 --- /dev/null +++ b/pyAmakCore/tests/test_pickle/main.py @@ -0,0 +1,48 @@ +import pickle +from time import sleep + +from pyAmakCore.classes.amas import Amas +from pyAmakCore.classes.environment import Environment +from pyAmakCore.classes.agent import Agent + + +class SimpleAgent(Agent): + + def __init__(self, amas): + self.i = 0 + super().__init__(amas) + + def on_cycle_begin(self) -> None: + self.i += 1 + +class SimpleAmas(Amas): + + def on_initial_agents_creation(self) -> None: + for i in range(10): + self.add_agent(SimpleAgent(self)) + + + def on_cycle_begin(self) -> None: + if self.get_cycle() == 0: + self.save() + + def save(self): + with open('filename.pickle', 'wb') as handle: + pickle.dump(self.get_agents()[0].get_id(), handle, protocol=pickle.HIGHEST_PROTOCOL) + sleep(500) + + @classmethod + def load(cls, amas_object): + with open('filename.pickle', 'wb') as handle: + amas_object = pickle.load(handle) + +class SimpleEnv(Environment): + pass + + +env = SimpleEnv() +amas = SimpleAmas(env) + +amas.put_token() + +amas.start()