class_docstr: Unit test class for general utilities. 
class_docstr_tok: ["Unit","test","class","for","general","utilities","."]
docstr: Tests direct with history. 
docstr_tok: ["Tests","direct","with","history","."]
code: def test_direct_with_history(self):
      """Tests direct with history."""
      self.report("DiRect with history.")
      for prob in self.problems:
          min_val_soln, _, history = oper_utils.direct_ft_maximise(
              prob.obj, prob.bounds, self.max_evals, return_history=True
          )
          if history is not None:
              assert is_nondecreasing(history.curr_opt_vals)
              assert (
                  np.abs(min_val_soln - history.curr_opt_vals[-1])
                  < 1e-4
              )
  
imports: from __future__ import absolute_import
  import os
  import time
  from argparse import Namespace
  import numpy
  from .ancillary_utils import is_nondecreasing
  from .base_test_class import BaseTestClass, execute_tests
  from .euclidean_synthetic_functions import get_mf_hartmann_function_data
  from .None import oper_utils
label_desc: Use image node_id 8 for calling the OptimisersTestCase obj's underlying member method code with example usage: obj.test_direct_with_history() without return types