123456789101112131415161718192021222324252627282930313233343536373839 |
- import os
-
- from synergine2.processing import ProcessManager
- from synergine2.utils import ChunkManager
- from tests import BaseTest
-
-
- class TestProcessing(BaseTest):
- @staticmethod
- def _make_job(data_chunk: list) -> tuple:
- current_pid = os.getpid()
- result = sum(data_chunk)
- return current_pid, result
-
- def test_parallel_jobs(self):
- chunk_manager = ChunkManager(4)
- process_manager = ProcessManager(
- process_count=4,
- chunk_manager=chunk_manager,
- job_maker=self._make_job,
- )
-
- data = list(range(100))
- process_id_list = []
- final_result = 0
-
- results = process_manager.execute_jobs(data)
-
- for process_id, result in results:
- final_result += result
- process_id_list.append(process_id)
-
- # Test each process ids are differents
- assert sorted(process_id_list) == \
- sorted(list(set(process_id_list)))
-
- # Goal is 4950
- assert final_result == 4950
|