code: def test_default_parquet_metadata_provider(fs, data_path):
      path_module = (
          os.path
          if urllib.parse.urlparse(data_path).scheme
          else posixpath
      )
      paths = [
          path_module.join(data_path, "test1.parquet"),
          path_module.join(data_path, "test2.parquet"),
      ]
      paths, fs = _resolve_paths_and_filesystem(paths, fs)
  
      df1 = pd.DataFrame({"one": [1, 2, 3], "two": ["a", "b", "c"]})
      table = pa.Table.from_pandas(df1)
      pq.write_table(table, paths[0], filesystem=fs)
      df2 = pd.DataFrame({"one": [4, 5, 6], "two": ["e", "f", "g"]})
      table = pa.Table.from_pandas(df2)
      pq.write_table(table, paths[1], filesystem=fs)
  
      meta_provider = DefaultParquetMetadataProvider()
      pq_ds = pq.ParquetDataset(
          paths, filesystem=fs, use_legacy_dataset=False
      )
      file_metas = meta_provider.prefetch_file_metadata(pq_ds.fragments)
  
      meta = meta_provider(
          [p.path for p in pq_ds.fragments],
          pq_ds.schema,
          num_fragments=len(pq_ds.fragments),
          prefetched_metadata=file_metas,
      )
      expected_meta_size_bytes = _get_parquet_file_meta_size_bytes(
          file_metas
      )
      assert meta.size_bytes == expected_meta_size_bytes
      assert meta.num_rows == 6
      assert len(paths) == 2
      assert all(path in meta.input_files for path in paths)
      assert meta.schema.equals(pq_ds.schema)
  
imports: import logging
  import os
  import posixpath
  import urllib.parse
  from functools import partial
  from unittest.mock import patch
  import pandas
  import pyarrow
  import pyarrow.parquet
  import pytest
  from pyarrow.fs import LocalFileSystem
  from pytest_lazyfixture import lazy_fixture
  from ray.data.datasource import BaseFileMetadataProvider, DefaultFileMetadataProvider, DefaultParquetMetadataProvider, FastFileMetadataProvider, FileMetadataProvider, ParquetMetadataProvider
  from ray.data.datasource.file_based_datasource import FILE_SIZE_FETCH_PARALLELIZATION_THRESHOLD
  from ray.data.datasource.file_meta_provider import _get_file_infos_common_path_prefix, _get_file_infos_parallel, _get_file_infos_serial
  from ray.data.datasource.path_util import _resolve_paths_and_filesystem, _unwrap_protocol
  from ray.data.tests.conftest import *
  from ray.data.tests.test_partitioning import PathPartitionEncoder
  from ray.tests.conftest import *
label_desc: Use image node_id 5 for calling a global function with example usage: test_default_parquet_metadata_provider(fs, data_path) without return types