docstr: ...Test HawkesExpKern basic settings
          
docstr_tok: ["...","Test","HawkesExpKern","basic","settings"]
code: def test_HawkesExpKern_settings(self):
      """...Test HawkesExpKern basic settings"""
      # solver
      solver_class_map = {
          "gd": GD,
          "agd": AGD,
          "sgd": SGD,
          "svrg": SVRG,
          "bfgs": BFGS,
      }
      for solver in solvers:
          learner = HawkesExpKern(
              self.decays,
              solver=solver,
              **Test.specific_solver_kwargs(solver),
          )
  
          solver_class = solver_class_map[solver]
          self.assertTrue(isinstance(learner._solver_obj, solver_class))
  
          msg = "solver is readonly in HawkesExpKern"
          with self.assertRaisesRegex(AttributeError, msg):
              learner.solver = solver
  
      msg = (
          "^``solver`` must be one of agd, bfgs, gd, sgd, "
          "svrg, got wrong_name$"
      )
      with self.assertRaisesRegex(ValueError, msg):
          HawkesExpKern(self.decays, solver="wrong_name")
  
      # prox
      prox_class_map = {
          "none": ProxPositive,
          "l1": ProxL1,
          "l2": ProxL2Sq,
          "elasticnet": ProxElasticNet,
          "nuclear": ProxNuclear,
      }
      for penalty in penalties:
          learner = HawkesExpKern(self.decays, penalty=penalty)
          prox_class = prox_class_map[penalty]
          self.assertTrue(isinstance(learner._prox_obj, prox_class))
  
          msg = "penalty is readonly in HawkesExpKern"
          with self.assertRaisesRegex(AttributeError, msg):
              learner.penalty = penalty
  
      msg = (
          "^``penalty`` must be one of elasticnet, l1, l2, none, "
          "nuclear, got wrong_name$"
      )
      with self.assertRaisesRegex(ValueError, msg):
          HawkesExpKern(self.decays, penalty="wrong_name")
  
      # models
      model_class_map = {
          "least-squares": ModelHawkesExpKernLeastSq,
          "likelihood": ModelHawkesExpKernLogLik,
      }
      for gofit in gofits:
          learner = HawkesExpKern(self.decays, gofit=gofit)
          model_class = model_class_map[gofit]
          self.assertTrue(isinstance(learner._model_obj, model_class))
  
          msg = "gofit is readonly in HawkesExpKern"
          with self.assertRaisesRegex(AttributeError, msg):
              learner.gofit = gofit
  
      msg = (
          "^Parameter gofit \(goodness of fit\) must be either "
          "'least-squares' or 'likelihood'$"
      )
      with self.assertRaisesRegex(ValueError, msg):
          HawkesExpKern(self.decays, gofit="wrong_name")
  
imports: import unittest
  import numpy
  from tick.base.inference import InferenceTest
  from tick.hawkes import SimuHawkesExpKernels
  from tick.hawkes.inference import HawkesExpKern
  from tick.hawkes.model.model_hawkes_expkern_leastsq import ModelHawkesExpKernLeastSq
  from tick.hawkes.model.model_hawkes_expkern_loglik import ModelHawkesExpKernLogLik
  from tick.prox import ProxNuclear
  from tick.prox import ProxPositive, ProxL1, ProxL2Sq, ProxElasticNet
  from tick.solver import AGD, GD, BFGS, SGD, SVRG
label_desc: Use image node_id 8 for calling the Test obj's underlying member method code with example usage: obj.test_HawkesExpKern_settings() without return types