code: def test_crs_metadata_datum_ensemble():
      # compatibility for older PROJ versions using PROJJSON with datum ensembles
      # https://github.com/geopandas/geopandas/pull/2453
      crs = pyproj.CRS("EPSG:4326")
      crs_json = crs.to_json_dict()
      check_ensemble = False
      if "datum_ensemble" in crs_json:
          # older version of PROJ don't yet have datum ensembles
          check_ensemble = True
          assert "id" in crs_json["datum_ensemble"]["members"][0]
      _remove_id_from_member_of_ensembles(crs_json)
      if check_ensemble:
          assert "id" not in crs_json["datum_ensemble"]["members"][0]
      # ensure roundtrip still results in an equivalent CRS
      assert pyproj.CRS(crs_json) == crs
  
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 3 for calling a global function with example usage: test_crs_metadata_datum_ensemble() without return types