code: def test_spatial_heterogeneous():
      recs = {
          "p": [neo4j.spatial.Point([1, 2, 3, 4]), 1],
          "c": [neo4j.spatial.CartesianPoint([1, 2]), 1],
          "c2": [neo4j.spatial.CartesianPoint([1, 2, 3]), 1],
          "w": [neo4j.spatial.WGS84Point([4, 5]), 1],
      }
      df = pd.DataFrame(recs)
      df2 = neo_df_to_pd_df(df)
      assert df2.dtypes.to_dict() == {
          "p": "object",
          "c": "object",
          "c2": "object",
          "w": "object",
      }
      d = df2.to_dict(orient="records")[0]
      assert d == {
          "p": "POINT(1.0 2.0 3.0 4.0)",
          "c": "POINT(1.0 2.0)",
          "c2": "POINT(1.0 2.0 3.0)",
          "w": "POINT(4.0 5.0)",
      }
      assert df2.to_dict(orient="records")[1] == {
          "p": 1,
          "c": 1,
          "c2": 1,
          "w": 1,
      }
      with pytest.raises(pa.lib.ArrowTypeError):
          pa.Table.from_pandas(df2)
  
file_path: pygraphistry/graphistry/tests/test_bolt_util.py
imports: import datetime, graphistry, neo4j, os, numpy, pandas, pyarrow, pytest
  from graphistry.bolt_util import neo_df_to_pd_df, node_id_key, node_type_key, start_node_id_key, end_node_id_key, relationship_id_key, relationship_type_key
label_desc: Use image node_id 8 for calling a global function with example usage: test_spatial_heterogeneous() without return types