code: def test_fwdti_multi_voxel():
      fwdm = fwdti.FreeWaterTensorModel(gtab_2s, "NLS", cholesky=False)
      fwefit = fwdm.fit(DWI)
      FAfwe = fwefit.fa
      Ffwe = fwefit.f
      MDfwe = fwefit.md
  
      assert_almost_equal(FAfwe, FAref)
      assert_almost_equal(Ffwe, GTF)
      assert_almost_equal(MDfwe, MDref)
  
      # Test Cholesky
      fwdm = fwdti.FreeWaterTensorModel(gtab_2s, "NLS", cholesky=True)
      fwefit = fwdm.fit(DWI)
      FAfwe = fwefit.fa
      Ffwe = fwefit.f
      MDfwe = fwefit.md
  
      assert_almost_equal(FAfwe, FAref)
      assert_almost_equal(Ffwe, GTF)
      assert_almost_equal(MDfwe, MDref)
  
imports: import numpy
  import dipy.reconst.dti
  import dipy.reconst.fwdti
  from dipy.reconst.fwdti import fwdti_prediction
  from numpy.testing import assert_array_almost_equal, assert_almost_equal, assert_raises
  from dipy.reconst.dti import from_lower_triangular, decompose_tensor, fractional_anisotropy
  from dipy.reconst.fwdti import lower_triangular_to_cholesky, cholesky_to_lower_triangular, nls_fit_tensor, wls_fit_tensor
  from dipy.sims.voxel import multi_tensor, single_tensor, all_tensor_evecs, multi_tensor_dki
  from dipy.io.gradients import read_bvals_bvecs
  from dipy.core.gradients import gradient_table
  from dipy.data import get_fnames
label_desc: Use image node_id 4 for calling a global function with example usage: test_fwdti_multi_voxel() without return types