code: def test_data_array_round_trip():
      # Test valid XML generated from new in-memory array
      # See: https://github.com/nipy/nibabel/issues/469
      verts = np.zeros((4, 3), np.float32)
      verts[0, 0] = 10.5
      verts[1, 1] = 20.5
      verts[2, 2] = 30.5
  
      vertices = GiftiDataArray(verts)
      img = GiftiImage()
      img.add_gifti_data_array(vertices)
      bio = BytesIO()
      fmap = dict(image=FileHolder(fileobj=bio))
      bio.write(img.to_xml())
      bio.seek(0)
      gio = GiftiImage.from_file_map(fmap)
      vertices = gio.darrays[0].data
      assert_array_equal(vertices, verts)
  
imports: import itertools
  import sys
  import warnings
  from io import BytesIO
  import numpy
  import pytest
  from numpy.testing import assert_array_almost_equal, assert_array_equal
  from nibabel.tmpdirs import InTemporaryDirectory
  from ...None import load
  from ...fileholders import FileHolder
  from ...nifti1 import data_type_codes
  from ...testing import get_test_data
  from ..None import GiftiCoordSystem, GiftiDataArray, GiftiImage, GiftiLabel, GiftiLabelTable, GiftiMetaData, GiftiNVPairs
  from .test_parse_gifti_fast import DATA_FILE1, DATA_FILE2, DATA_FILE3, DATA_FILE4, DATA_FILE5, DATA_FILE6
label_desc: Use image node_id 15 for calling a global function with example usage: test_data_array_round_trip() without return types