code: def test_piesno(rng):
      # Values taken from hispeed.OptimalPIESNO with the test data
      # in the package computed in matlab
      test_piesno_data = load_nifti_data(dpd.get_fnames("test_piesno"))
      sigma = piesno(
          test_piesno_data,
          N=8,
          alpha=0.01,
          l=1,
          eps=1e-10,
          return_mask=False,
      )
      assert_almost_equal(sigma, 0.010749458025559)
  
      noise1 = (rng.standard_normal((100, 100, 100)) * 50) + 10
      noise2 = (rng.standard_normal((100, 100, 100)) * 50) + 10
      rician_noise = np.sqrt(noise1**2 + noise2**2)
      sigma, mask = piesno(
          rician_noise,
          N=1,
          alpha=0.01,
          l=1,
          eps=1e-10,
          return_mask=True,
      )
  
      # less than 3% of error?
      assert_(np.abs(sigma - 50) / sigma < 0.03)
  
      # Test using the median as the initial estimation
      initial_estimation = np.median(sigma) / np.sqrt(
          2 * _inv_nchi_cdf(1, 1, 0.5)
      )
  
      sigma, mask = _piesno_3D(
          rician_noise,
          N=1,
          alpha=0.01,
          l=1,
          eps=1e-10,
          return_mask=True,
          initial_estimation=initial_estimation,
      )
  
      assert_(np.abs(sigma - 50) / sigma < 0.03)
  
      sigma = _piesno_3D(
          rician_noise,
          N=1,
          alpha=0.01,
          l=1,
          eps=1e-10,
          return_mask=False,
          initial_estimation=initial_estimation,
      )
      assert_(np.abs(sigma - 50) / sigma < 0.03)
  
      sigma = _piesno_3D(
          np.zeros_like(rician_noise),
          N=1,
          alpha=0.01,
          l=1,
          eps=1e-10,
          return_mask=False,
          initial_estimation=initial_estimation,
      )
  
      assert_(np.all(sigma == 0))
  
      sigma, mask = _piesno_3D(
          np.zeros_like(rician_noise),
          N=1,
          alpha=0.01,
          l=1,
          eps=1e-10,
          return_mask=True,
          initial_estimation=initial_estimation,
      )
  
      assert_(np.all(sigma == 0))
      assert_(np.all(mask == 0))
  
      # Check if no noise points found in array it exits
      sigma = _piesno_3D(
          1000 * np.ones_like(rician_noise),
          N=1,
          alpha=0.01,
          l=1,
          eps=1e-10,
          return_mask=False,
          initial_estimation=10,
      )
      assert_(np.all(sigma == 10))
  
file_path: dipy/dipy/denoise/tests/test_noise_estimate.py
imports: import numpy
  from numpy.testing import assert_almost_equal, assert_equal, assert_, assert_array_almost_equal, assert_warns
  from dipy.denoise.noise_estimate import _inv_nchi_cdf, piesno, estimate_sigma
  from dipy.denoise.noise_estimate import _piesno_3D
  from dipy.denoise.pca_noise_estimate import pca_noise_estimate
  import dipy.data
  import dipy.core.gradients
  from dipy.io.image import load_nifti_data
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 2 for calling a global function with example usage: test_piesno(rng) without return types