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]
  
      nlmeans(
          S0, sigma=np.ones((20, 20, 20)) * np.std(noise), rician=False
      )
  
      print(S0[9, 9, 9])
      print(S0[10, 10, 10])
  
      assert_(S0[9, 9, 9] > 290)
      assert_(S0[10, 10, 10] < 110)
  
file_path: dipy/dipy/denoise/tests/test_nlmeans.py
imports: from time import time
  import numpy
  from numpy.testing import assert_, assert_equal, assert_array_almost_equal, assert_raises
  import pytest
  from dipy.denoise.nlmeans import nlmeans
  from dipy.denoise.denspeed import add_padding_reflection, remove_padding
  from dipy.utils.omp import cpu_count, have_openmp
  from dipy.testing import assert_greater
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 5 for calling a global function with example usage: test_nlmeans_boundary(rng) without return types