class_docstr: Base test class for optimisers on Cartesian product spaces. 
class_docstr_tok: ["Base","test","class","for","optimisers","on","Cartesian","product","spaces","."]
docstr: Testing random optimiser with three asynchronous workers. 
docstr_tok: ["Testing","random","optimiser","with","three","asynchronous","workers","."]
code: def test_optimisation_asynchronous(self):
      """Testing random optimiser with three asynchronous workers."""
      self.report("")
      self.report(
          "Testing %s with three asynchronous workers." % (type(self))
      )
      for idx, (dcf, (raw_prob_funcs,)) in enumerate(self.opt_problems):
          self.report(
              "[%d/%d] Testing optimisation  with 3 asynchronous workers on %s."
              % (idx + 1, len(self.opt_problems), dcf),
              "test_result",
          )
          self.worker_manager_3.reset()
          pareto_vals, pareto_points, history = self._run_optimiser(
              raw_prob_funcs,
              dcf,
              self.worker_manager_3,
              self.max_capital,
              "asy",
          )
          self._test_optimiser_results(
              raw_prob_funcs, pareto_vals, pareto_points, history, dcf
          )
          self.report("")
  
imports: import os
  from ..test_data.multiobjective_hartmann.multiobjective_hartmann import objectives
  from ..test_data.multiobjective_park.multiobjective_park import objectives
  from ..exd.cp_domain_utils import get_raw_point_from_processed_point, load_config_file
  from ..exd.experiment_caller import get_multifunction_caller_from_config
  from ..exd.worker_manager import SyntheticWorkerManager
  from .None import random_multiobjective_optimiser
  from ..utils.base_test_class import BaseTestClass, execute_tests
  from ..utils.reporters import get_reporter
label_desc: Use image node_id 8 for calling the CPMultiObjectiveOptimiserBaseTestCase obj's underlying member method code with example usage: obj.test_optimisation_asynchronous() without return types