def METHOD_NAME(self, cuda=False):
    device = torch.device("cuda") if cuda else torch.device("cpu")
    mean = torch.tensor([[0.0, 1.0], [-0.5, 2.0]], device=device)
    cov = torch.eye(2, device=device).repeat(2, 1, 1)
    prior = MultivariateNormalPrior(mean, covariance_matrix=cov)
    dist = MultivariateNormal(mean, covariance_matrix=cov)
    t = torch.tensor([-1, 0.5], device=device)
    self.assertTrue(torch.equal(prior.log_prob(t), dist.log_prob(t)))
    t = torch.tensor([[-1, 0.5], [1.5, -2.0]], device=device)
    self.assertTrue(torch.equal(prior.log_prob(t), dist.log_prob(t)))
    with self.assertRaises(RuntimeError):
        prior.log_prob(torch.zeros(1, 3, device=device))
    mean = torch.rand(3, 2, 2, device=device)
    cov = torch.eye(2, device=device).repeat(3, 2, 1, 1)
    prior = MultivariateNormalPrior(mean, covariance_matrix=cov)
    dist = MultivariateNormal(mean, covariance_matrix=cov)
    t = torch.rand(2, device=device)
    self.assertTrue(torch.equal(prior.log_prob(t), dist.log_prob(t)))
    t = torch.rand(2, 2, device=device)
    self.assertTrue(torch.equal(prior.log_prob(t), dist.log_prob(t)))
    t = torch.rand(3, 2, 2, device=device)
    self.assertTrue(torch.equal(prior.log_prob(t), dist.log_prob(t)))
    t = torch.rand(2, 3, 2, 2, device=device)
    self.assertTrue(torch.equal(prior.log_prob(t), dist.log_prob(t)))
    with self.assertRaises(RuntimeError):
        prior.log_prob(torch.rand(3, device=device))
    with self.assertRaises(RuntimeError):
        prior.log_prob(torch.rand(3, 2, 3, device=device))