class_docstr: Run some generic sanity-checks of a suggest algorithm to make sure that
  it respects the semantics expected by e.g. fmin.
  
  Use it like this:
  
      TestRand = Suggest_API.make_test_class(rand.suggest, 'TestRand')
code: def make_tst_class(cls, suggest, domain, name):
      class Tester(unittest.TestCase, cls):
          def suggest(self, *args, **kwargs):
              print(args, kwargs)
              return suggest(*args, **kwargs)
  
          def setUp(self):
              self.domain = domain
  
      Tester.__name__ = name
      return Tester
  
imports: import copy
  import unittest
  import numpy
  import bson
  from hyperopt.pyll import scope
  from hyperopt.base import JOB_STATE_DONE, JOB_STATE_NEW
  from hyperopt.base import TRIAL_KEYS
  from hyperopt.base import TRIAL_MISC_KEYS
  from hyperopt.base import InvalidTrial
  from hyperopt.base import miscs_to_idxs_vals
  from hyperopt.base import SONify
  from hyperopt.base import STATUS_OK
  from hyperopt.base import Trials
  from hyperopt.base import trials_from_docs
  from hyperopt.exceptions import AllTrialsFailed
label_desc: Use image node_id 1 for calling the Suggest_API obj's underlying member method code with example usage: obj.make_tst_class(cls, suggest, domain, name) and returns: Tester, suggest