code: def test_chunk_size(self):
      log_file = os.path.join(
          os.path.dirname(__file__), "..", "logs", "chunk.log"
      )
      try:
          fiber.reset()
          log_file = fiber_config.log_file
          log_level = fiber_config.log_level
  
          fiber.init(
              cpu_per_job=8, log_file=log_file, log_level="debug"
          )
  
          n_envs = 9
          queues = [
              (SimpleQueue(), SimpleQueue()) for _ in range(n_envs)
          ]
          pool = Pool(n_envs)
  
          # explicitly start workers instead of lazy start
          pool.start_workers()
          print("waiting for all workers to be up")
          # wait some time for workers to start
          pool.wait_until_workers_up()
          # time.sleep(20)
          print("all workers are up")
  
          def run_map():
              print("[master]RUN MAP")
              # Not setting chunk size 1 here, if chunk size is calculated
              # wrong,  map will get stuck
              pool.map(
                  double_queue_worker, enumerate(queues), chunksize=1
              )
              print("[master]RUN MAP DONE")
  
          td = threading.Thread(target=run_map, daemon=True)
          td.start()
  
          print("Checking...")
          for i, (_, returns) in enumerate(queues):
              print("[master]Checking queue", i, n_envs)
              assert "READY" in returns.get()
              print(f"[master]Checking queue {i} done")
  
          print("All workers are ready, put HELLOs")
          for i, (instruction, _) in enumerate(queues):
              instruction.put("HELLO")
              print(f"[master]PUT HELLO {i}")
  
          print("All HELLOs sent, waiting for ACKs")
          for i, (_, returns) in enumerate(queues):
              assert "ACK" in returns.get()
              print(f"[master]GOT ACK {i}")
  
          print("All ACKs sent, send QUIT to workers")
          for i, (instruction, _) in enumerate(queues):
              instruction.put("QUIT")
              print(f"[master]PUT QUIT {i}, {n_envs}")
          pool.terminate()
          pool.join()
  
      finally:
          fiber.init(log_file=log_file, log_level=log_level)
  
imports: import os
  import time
  from fiber import Pool, SimpleQueue
  import fiber
  import pytest
  import docker
  import threading
  import random
  import fiber.config
label_desc: Use image node_id 9 for calling the TestPool obj's underlying member method code with example usage: obj.test_chunk_size() without return types