class_docstr: Unit test for GA Optimisation. 
class_docstr_tok: ["Unit","test","for","GA","Optimisation","."]
docstr: Test optimisation. 
docstr_tok: ["Test","optimisation","."]
code: def test_ga_optimisation_single(self):
      """Test optimisation."""
      self.report("Testing GA Optimiser with just one worker.")
      worker_manager = SyntheticWorkerManager(1, time_distro="const")
      func_caller = FunctionCaller(cnn_syn_func1, self.nn_domain)
      (
          options,
          options_clone,
          reporter,
          _,
          mutation_op,
      ) = self._get_optimiser_args("cnn")
      (
          opt_val,
          opt_pt,
          history,
      ) = nn_ga_optimiser.nn_ga_optimise_from_args(
          func_caller,
          worker_manager,
          20,
          "asy",
          mutation_op,
          options=options,
          reporter=reporter,
      )
      self._test_optimiser_results(
          opt_val, opt_pt, history, options, options_clone
      )
      self.report("")
  
imports: from copy import deepcopy
  from argparse import Namespace
  import unittest
  from .None import nn_ga_optimiser
  from .nn_domains import NNDomain
  from .syn_nn_functions import cnn_syn_func1, mlp_syn_func1
  from .nn_domains import CNNConstraintChecker, MLPConstraintChecker
  from .nn_modifiers import get_nn_modifier_from_args
  from .unittest_nn_modifier_class import networks_are_equal
  from .nn_opt_utils import get_initial_cnn_pool, get_initial_mlp_pool
  from ..exd.experiment_caller import FunctionCaller
  from ..exd.worker_manager import SyntheticWorkerManager
  from ..utils.reporters import get_reporter
  from ..utils.option_handler import load_options
  from ..utils.base_test_class import BaseTestClass, execute_tests
label_desc: Use image node_id 5 for calling the GAOptimiserTestCase obj's underlying member method code with example usage: obj.test_ga_optimisation_single() without return types