code: def test_reshape(old_shape, new_shape, dim):
      gamma_gaussian = random_gamma_gaussian(old_shape, dim)
  
      # reshape to new
      new = gamma_gaussian.reshape(new_shape)
      assert new.batch_shape == new_shape
  
      # reshape back to old
      g = new.reshape(old_shape)
      assert_close_gamma_gaussian(g, gamma_gaussian)
  
imports: import math
  import pytest
  import torch
  from torch.nn.functional import pad
  import pyro.distributions
  from pyro.distributions.util import broadcast_shape
  from pyro.ops.gamma_gaussian import GammaGaussian, gamma_and_mvn_to_gamma_gaussian, gamma_gaussian_tensordot, matrix_and_mvn_to_gamma_gaussian
  from tests.common import assert_close
  from tests.ops.gamma_gaussian import assert_close_gamma_gaussian, random_gamma, random_gamma_gaussian
  from tests.ops.gaussian import random_mvn
label_desc: Use image node_id 2 for calling a global function with example usage: test_reshape(old_shape, new_shape, dim) without return types