code: def test_subset_active_compute_exponential_decay_function(self):
      a = torch.tensor([1.0, 2.0]).view(2, 1)
      a_p = torch.tensor([3.0, 4.0]).view(2, 1)
      a = torch.cat((a, a_p), 1)
      b = torch.tensor([2.0, 4.0]).view(2, 1)
      lengthscale = 1
      power = 1
      offset = 1
  
      kernel = ExponentialDecayKernel(active_dims=[0])
      kernel.initialize(
          lengthscale=lengthscale, power=power, offset=offset
      )
      kernel.eval()
  
      diff = torch.tensor([[4.0, 6.0], [5.0, 7.0]])
      actual = offset + diff.pow(-power)
      res = kernel(a, b).to_dense()
  
      self.assertLess(torch.linalg.norm(res - actual), 1e-5)
  
imports: import torch
  from botorch.models.kernels.exponential_decay import ExponentialDecayKernel
  from botorch.utils.testing import BotorchTestCase
  from gpytorch.priors.torch_priors import GammaPrior, NormalPrior
  from gpytorch.test.base_kernel_test_case import BaseKernelTestCase
label_desc: Use image node_id 2 for calling the TestExponentialDecayKernel obj's underlying member method code with example usage: obj.test_subset_active_compute_exponential_decay_function() without return types