code: def test_is_noiseless(self) -> None:
      x = torch.zeros(1, 1)
      y = torch.zeros(1, 1)
      se = torch.zeros(1, 1)
      model = SingleTaskGP(x, y)
      self.assertTrue(is_noiseless(model))
      model = HeteroskedasticSingleTaskGP(x, y, se)
      self.assertFalse(is_noiseless(model))
      with self.assertRaises(ModelError):
          is_noiseless(ModelListGP())
  
file_path: Ax/ax/models/tests/test_torch_model_utils.py
imports: import numpy
  import torch
  from ax.exceptions.model import ModelError
  from ax.models.torch.utils import _generate_sobol_points, is_noiseless, normalize_indices, subset_model, tensor_callable_to_array_callable
  from ax.utils.common.testutils import TestCase
  from botorch.models import HeteroskedasticSingleTaskGP, ModelListGP, SingleTaskGP
  from torch import Tensor
label_desc: Use image node_id 1 for calling the TorchUtilsTest obj's underlying member method code with example usage: obj.test_is_noiseless() without return types