code: def test_mapmri_isotropic_design_matrix_separability(radial_order=6):
      gtab = get_gtab_taiwan_dsi()
      tau = 1 / (4 * np.pi**2)
      qvals = np.sqrt(gtab.bvals / tau) / (2 * np.pi)
      q = gtab.bvecs * qvals[:, None]
      mu = 0.0003  # random value
  
      with warnings.catch_warnings():
          warnings.filterwarnings(
              "ignore",
              message=descoteaux07_legacy_msg,
              category=PendingDeprecationWarning,
          )
          M = mapmri.mapmri_isotropic_phi_matrix(radial_order, mu, q)
          M_independent = mapmri.mapmri_isotropic_M_mu_independent(
              radial_order, q
          )
      M_dependent = mapmri.mapmri_isotropic_M_mu_dependent(
          radial_order, mu, qvals
      )
      M_reconstructed = M_independent * M_dependent
  
      assert_array_almost_equal(M, M_reconstructed)
  
imports: import platform
  import time
  from math import factorial
  from scipy.special import gamma
  import scipy.integrate
  import warnings
  import numpy
  from numpy.testing import assert_almost_equal, assert_array_almost_equal, assert_equal, assert_, assert_raises
  import pytest
  from dipy.core.sphere_stats import angular_similarity
  from dipy.core.subdivide_octahedron import create_unit_sphere
  from dipy.data import get_gtab_taiwan_dsi, default_sphere
  from dipy.direction.peaks import peak_directions
  from dipy.reconst.mapmri import MapmriModel, mapmri_index_matrix
  from dipy.reconst import dti, mapmri
  from dipy.reconst.odf import gfa
  from dipy.reconst.tests.test_dsi import sticks_and_ball_dummies
  from dipy.reconst.shm import sh_to_sf, descoteaux07_legacy_msg
  from dipy.sims.voxel import multi_tensor, multi_tensor_pdf, add_noise, single_tensor, cylinders_and_ball_soderman
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 18 for calling a global function with example usage: test_mapmri_isotropic_design_matrix_separability(radial_order) without return types