From f8af2c790044caf201dc0b8fa30675876e3c667f Mon Sep 17 00:00:00 2001 From: shinedday <shinedday@gmail.com> Date: Thu, 13 May 2021 15:19:00 +0200 Subject: [PATCH] Having issue with dumping semaphore --- pyAmakCore/tests/memory_leak/main.py | 18 ++----- pyAmakCore/tests/test_pickle/filename.pickle | Bin 0 -> 5 bytes pyAmakCore/tests/test_pickle/main.py | 48 +++++++++++++++++++ 3 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 pyAmakCore/tests/test_pickle/filename.pickle create mode 100644 pyAmakCore/tests/test_pickle/main.py diff --git a/pyAmakCore/tests/memory_leak/main.py b/pyAmakCore/tests/memory_leak/main.py index 189fad6..c10531d 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 GIT binary patch literal 5 McmZo*^=8lm00XE1{{R30 literal 0 HcmV?d00001 diff --git a/pyAmakCore/tests/test_pickle/main.py b/pyAmakCore/tests/test_pickle/main.py new file mode 100644 index 0000000..77ddde8 --- /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() -- GitLab