code: def test_io_info():
      fimg, fbvals, fbvecs = get_fnames("small_101D")
      io_info_flow = IoInfoFlow()
      io_info_flow.run([fimg, fbvals, fbvecs])
  
      fimg, fbvals, fvecs = get_fnames("small_25")
      io_info_flow = IoInfoFlow()
      io_info_flow.run([fimg, fbvals, fvecs])
  
      io_info_flow = IoInfoFlow()
      io_info_flow.run(
          [fimg, fbvals, fvecs], b0_threshold=20, bvecs_tol=0.001
      )
  
      filepath_dix, _, _ = get_fnames("gold_standard_tracks")
      io_info_flow = IoInfoFlow()
      io_info_flow.run([filepath_dix["gs.trx"], filepath_dix["gs.trk"]])
  
      io_info_flow = IoInfoFlow()
      npt.assert_raises(
          TypeError, io_info_flow.run, filepath_dix["gs.tck"]
      )
  
      io_info_flow = IoInfoFlow()
      io_info_flow.run(
          filepath_dix["gs.tck"], reference=filepath_dix["gs.nii"]
      )
  
      with open(fname_log, "r") as file:
          lines = file.readlines()
          try:
              npt.assert_equal(
                  lines[-3], "INFO Total number of unit bvectors 25\n"
              )
          except IndexError:  # logging maybe disabled in IDE setting
              pass
  
file_path: dipy/dipy/workflows/tests/test_io.py
imports: import logging
  import os
  from tempfile import mkstemp, TemporaryDirectory
  import numpy
  import numpy.testing
  from dipy.data import get_fnames
  from dipy.data.fetcher import dipy_home
  from dipy.io.image import load_nifti, save_nifti
  from dipy.io.streamline import load_tractogram
  from dipy.testing import assert_true
  from dipy.reconst.shm import convert_sh_descoteaux_tournier
  from dipy.workflows.io import IoInfoFlow, FetchFlow, SplitFlow, ConcatenateTractogramFlow, ConvertSHFlow, ConvertTractogramFlow
label_desc: Use image node_id 1 for calling a global function with example usage: test_io_info() without return types