code: def test_random_search(self):
      model = BPR(max_iter=1, verbose=True)
      metric = AUC()
      rs_bpr = RandomSearch(
          model=model,
          space=[
              Discrete("k", [1, 2, 3]),
              Continuous("learning_rate", low=0.01, high=0.1),
          ],
          metric=metric,
          eval_method=self.eval_method,
      )
      Experiment(
          eval_method=self.eval_method,
          models=[rs_bpr],
          metrics=[metric],
          user_based=False,
      ).run()
  
file_path: cornac/tests/cornac/test_hyperopt.py
imports: import unittest
  import numpy
  import numpy.testing
  from cornac.data import Reader
  from cornac.models import MF, BPR
  from cornac.metrics import RMSE, AUC
  from cornac.eval_methods import RatioSplit
  from cornac.hyperopt import Discrete, Continuous
  from cornac.hyperopt import GridSearch, RandomSearch
  from cornac import Experiment
label_desc: Use image node_id 3 for calling the TestCommon obj's underlying member method code with example usage: obj.test_random_search() without return types