code: def test_nlmeans_boundary(rng):
      # nlmeans preserves boundaries
      S0 = 100 + np.zeros((20, 20, 20))
      noise = 2 * rng.standard_normal((20, 20, 20))
      S0 += noise
      S0[:10, :10, :10] = 300 + noise[:10, :10, :10]
      non_local_means(S0, sigma=np.std(noise), rician=False)
      assert_(S0[9, 9, 9] > 290)
      assert_(S0[10, 10, 10] < 110)
  
file_path: dipy/dipy/denoise/tests/test_non_local_means.py
imports: import numpy
  from numpy.testing import assert_, assert_equal, assert_array_almost_equal, assert_raises
  from dipy.denoise.non_local_means import non_local_means
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 4 for calling a global function with example usage: test_nlmeans_boundary(rng) without return types