code: def test_eig_from_lo_tri():
      psphere = get_sphere("symmetric362")
      bvecs = np.concatenate(([[0, 0, 0]], psphere.vertices))
      bvals = np.zeros(len(bvecs)) + 1000
      bvals[0] = 0
      gtab = grad.gradient_table(bvals, bvecs)
      mevals = np.array(
          ([0.0015, 0.0003, 0.0001], [0.0015, 0.0003, 0.0003])
      )
      mevecs = [
          np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]),
          np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]]),
      ]
      S = np.array(
          [
              [
                  single_tensor(
                      gtab, 100, mevals[0], mevecs[0], snr=None
                  ),
                  single_tensor(
                      gtab, 100, mevals[0], mevecs[0], snr=None
                  ),
              ]
          ]
      )
  
      dm = dti.TensorModel(gtab, "LS")
      dmfit = dm.fit(S)
  
      lo_tri = lower_triangular(dmfit.quadratic_form)
      npt.assert_array_almost_equal(
          dti.eig_from_lo_tri(lo_tri), dmfit.model_params
      )
  
imports: import warnings
  import numpy
  import numpy.testing
  import scipy.optimize
  import dipy.reconst.dti
  from dipy.io.gradients import read_bvals_bvecs
  from dipy.reconst.dti import ols_resort_msg, axial_diffusivity, color_fa, fractional_anisotropy, from_lower_triangular, geodesic_anisotropy, lower_triangular, mean_diffusivity, radial_diffusivity, TensorModel, trace, linearity, planarity, sphericity, decompose_tensor, _decompose_tensor_nan
  from dipy.io.image import load_nifti_data
  from dipy.data import get_fnames, dsi_voxels, get_sphere
  from dipy.core.subdivide_octahedron import create_unit_sphere
  import dipy.core.gradients
  import dipy.core.sphere
  from dipy.sims.voxel import single_tensor
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 23 for calling a global function with example usage: test_eig_from_lo_tri() without return types