code: def test_orthogonality_temporal_basis_functions():
      # numerical integration parameters
      ut = 10
      tmin = 0
      tmax = 100
  
      int1 = integrate.quad(
          lambda t: qtdmri.temporal_basis(1, ut, t)
          * qtdmri.temporal_basis(2, ut, t),
          tmin,
          tmax,
      )
      int2 = integrate.quad(
          lambda t: qtdmri.temporal_basis(2, ut, t)
          * qtdmri.temporal_basis(3, ut, t),
          tmin,
          tmax,
      )
      int3 = integrate.quad(
          lambda t: qtdmri.temporal_basis(3, ut, t)
          * qtdmri.temporal_basis(4, ut, t),
          tmin,
          tmax,
      )
      int4 = integrate.quad(
          lambda t: qtdmri.temporal_basis(4, ut, t)
          * qtdmri.temporal_basis(5, ut, t),
          tmin,
          tmax,
      )
  
      assert_almost_equal(int1, 0.0)
      assert_almost_equal(int2, 0.0)
      assert_almost_equal(int3, 0.0)
      assert_almost_equal(int4, 0.0)
  
imports: import warnings
  import numpy
  import scipy.integrate
  from numpy.testing import assert_, assert_almost_equal, assert_array_almost_equal, assert_equal, assert_raises
  import pytest
  from dipy.core.gradients import gradient_table_from_qvals_bvecs
  from dipy.data import get_gtab_taiwan_dsi, get_sphere
  from dipy.reconst import qtdmri, mapmri
  from dipy.reconst.shm import descoteaux07_legacy_msg
  from dipy.sims.voxel import multi_tensor, add_noise
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 4 for calling a global function with example usage: test_orthogonality_temporal_basis_functions() without return types