code: def test_create_metadata(naturalearth_lowres):
      df = read_file(naturalearth_lowres)
      metadata = _create_metadata(df)
  
      assert isinstance(metadata, dict)
      assert metadata["version"] == METADATA_VERSION
      assert metadata["primary_column"] == "geometry"
      assert "geometry" in metadata["columns"]
      crs_expected = df.crs.to_json_dict()
      _remove_id_from_member_of_ensembles(crs_expected)
      assert metadata["columns"]["geometry"]["crs"] == crs_expected
      assert metadata["columns"]["geometry"]["encoding"] == "WKB"
      assert metadata["columns"]["geometry"]["geometry_types"] == [
          "MultiPolygon",
          "Polygon",
      ]
  
      assert np.array_equal(
          metadata["columns"]["geometry"]["bbox"],
          df.geometry.total_bounds,
      )
  
      assert metadata["creator"]["library"] == "geopandas"
      assert metadata["creator"]["version"] == geopandas.__version__
  
imports: from __future__ import absolute_import
  from itertools import product
  import json
  from packaging.version import Version
  import os
  import pathlib
  import pytest
  from pandas import DataFrame, read_parquet
  from pandas.testing import assert_frame_equal
  import numpy
  import pyproj
  from shapely.geometry import box, Point, MultiPolygon
  import geopandas
  from geopandas import GeoDataFrame, read_file, read_parquet, read_feather
  from geopandas.array import to_wkb
  from geopandas.io.arrow import SUPPORTED_VERSIONS, _create_metadata, _decode_metadata, _encode_metadata, _geopandas_to_arrow, _get_filesystem_path, _remove_id_from_member_of_ensembles, _validate_dataframe, _validate_metadata, METADATA_VERSION
  from geopandas.testing import assert_geodataframe_equal, assert_geoseries_equal
  from geopandas.tests.util import mock
label_desc: Use image node_id 2 for calling a global function with example usage: test_create_metadata(naturalearth_lowres) without return types