code: def test_q_simple_regret_constraints(self):
      # basic test that passing constraints directly is not allowed
      samples = torch.zeros(
          2, 2, 1, device=self.device, dtype=torch.double
      )
      samples[0, 0, 0] = 1.0
      mm = MockModel(MockPosterior(samples=samples))
      regex = r"__init__\(\) got an unexpected keyword argument 'constraints'"
      with self.assertRaisesRegex(TypeError, regex):
          qSimpleRegret(model=mm, constraints=[lambda Y: Y[..., 0]])
  
imports: import warnings
  from copy import deepcopy
  from functools import partial
  from itertools import product
  from math import pi
  from unittest import mock
  import torch
  from botorch import settings
  from botorch.acquisition.monte_carlo import MCAcquisitionFunction, qExpectedImprovement, qNoisyExpectedImprovement, qProbabilityOfImprovement, qSimpleRegret, qUpperConfidenceBound, SampleReducingMCAcquisitionFunction
  from botorch.acquisition.objective import ConstrainedMCObjective, GenericMCObjective, IdentityMCObjective, ScalarizedPosteriorTransform
  from botorch.acquisition.utils import prune_inferior_points
  from botorch.exceptions import BotorchWarning, UnsupportedError
  from botorch.models import SingleTaskGP
  from botorch.sampling.normal import IIDNormalSampler, SobolQMCNormalSampler
  from botorch.utils.low_rank import sample_cached_cholesky
  from botorch.utils.test_helpers import DummyNonScalarizingPosteriorTransform
  from botorch.utils.testing import BotorchTestCase, MockModel, MockPosterior
  from botorch.utils.transforms import standardize
  from torch import Tensor
label_desc: Use image node_id 3 for calling the TestQSimpleRegret obj's underlying member method code with example usage: obj.test_q_simple_regret_constraints() without return types