code: def test_normal_gaussian_nd(mode, factor, **kwargs):
      ndim = 3
      kwargs["nsteps"] = 8000
  
      # Isotropic.
      _test_normal(
          moves.GaussianMove(0.5, factor=factor, mode=mode),
          ndim=ndim,
          **kwargs,
      )
  
      # Axis-aligned.
      _test_normal(
          moves.GaussianMove(
              0.5 * np.ones(ndim), factor=factor, mode=mode
          ),
          ndim=ndim,
          **kwargs,
      )
      with pytest.raises(ValueError):
          _test_normal(
              moves.GaussianMove(
                  0.5 * np.ones(ndim - 1), factor=factor, mode=mode
              ),
              ndim=ndim,
              **kwargs,
          )
  
      # Full matrix.
      if mode == "vector":
          _test_normal(
              moves.GaussianMove(
                  np.diag(0.5 * np.ones(ndim)), factor=factor, mode=mode
              ),
              ndim=ndim,
              **kwargs,
          )
          with pytest.raises(ValueError):
              _test_normal(
                  moves.GaussianMove(np.diag(0.5 * np.ones(ndim - 1))),
                  ndim=ndim,
                  **kwargs,
              )
      else:
          with pytest.raises(ValueError):
              _test_normal(
                  moves.GaussianMove(
                      np.diag(0.5 * np.ones(ndim)),
                      factor=factor,
                      mode=mode,
                  ),
                  ndim=ndim,
                  **kwargs,
              )
  
file_path: emcee/src/emcee/tests/integration/test_gaussian.py
imports: from itertools import product
  import numpy
  import pytest
  from emcee import moves
  from .test_proposal import _test_normal, _test_uniform
label_desc: Use image node_id 2 for calling a global function with example usage: test_normal_gaussian_nd(mode, factor) without return types