code: def test_constrained_base_test_problem(self):
      for dtype in (torch.float, torch.double):
          problem = DummyConstrainedTestProblem().to(
              device=self.device, dtype=dtype
          )
          X = torch.tensor([[0.4, 0.6], [0.1, 0.1]])
          feas = problem.is_feasible(X=X)
          self.assertFalse(feas[0].item())
          self.assertTrue(feas[1].item())
          problem = DummyConstrainedTestProblem(noise_std=0.0).to(
              device=self.device, dtype=dtype
          )
          feas = problem.is_feasible(X=X)
          self.assertFalse(feas[0].item())
          self.assertTrue(feas[1].item())
  
file_path: botorch/test/test_functions/test_base.py
imports: import torch
  from botorch.test_functions.base import BaseTestProblem, ConstrainedBaseTestProblem
  from botorch.utils.testing import BotorchTestCase
  from torch import Tensor
label_desc: Use image node_id 2 for calling the TestBaseTestProblems obj's underlying member method code with example usage: obj.test_constrained_base_test_problem() without return types