code: def test_sssp_data_type_conversion(graph_file, source):
      dataset_path = graph_file.get_path()
      dataset_name = graph_file.metadata["name"]
      cu_M = utils.read_csv_file(dataset_path)
  
      # cugraph call with int32 weights
      cu_M["2"] = cu_M["2"].astype(np.int32)
      G = cugraph.Graph(directed=True)
      G.from_cudf_edgelist(
          cu_M, source="0", destination="1", edge_attr="2"
      )
      # assert cugraph weights is int32
      assert G.edgelist.edgelist_df["weights"].dtype == np.int32
      df = cugraph.sssp(G, source)
      max_val = np.finfo(df["distance"].dtype).max
      verts_np = df["vertex"].to_numpy()
      dist_np = df["distance"].to_numpy()
      pred_np = df["predecessor"].to_numpy()
      cu_paths = dict(zip(verts_np, zip(dist_np, pred_np)))
      golden_paths = get_resultset(
          resultset_name="traversal",
          algo="single_source_dijkstra_path_length",
          graph_dataset=dataset_name,
          graph_directed=str(True),
          source=str(source),
          test="data_type_conversion",
      )
      golden_paths = cudf.Series(
          golden_paths.distance.values, index=golden_paths.vertex
      ).to_dict()
  
      # Calculating mismatch
      err = 0
      for vid in cu_paths:
          # Validate vertices that are reachable
          # NOTE : If distance type is float64 then cu_paths[vid][0]
          # should be compared against np.finfo(np.float64).max)
          distances = cugraph.sssp(G, source=vid)
          if cu_paths[vid][0] != max_val:
              if cu_paths[vid][0] != golden_paths[vid]:
                  err = err + 1
              # check pred dist + edge_weight = current dist
              if vid != source:
                  pred = cu_paths[vid][1]
                  if G.has_edge(pred, vid):
                      edge_weight = distances[
                          distances["vertex"] == pred
                      ].iloc[0, 0]
                  if (
                      cu_paths[pred][0] + edge_weight
                      != cu_paths[vid][0]
                  ):
                      err = err + 1
          else:
              if vid in golden_paths.keys():
                  err = err + 1
  
      assert err == 0
  
imports: import gc
  import pytest
  import numpy
  import pandas
  import cudf
  import cupyx
  import cugraph
  import cupy
  from cupyx.scipy.sparse import coo_matrix
  from cupyx.scipy.sparse import csr_matrix
  from cupyx.scipy.sparse import csc_matrix
  from scipy.sparse import coo_matrix
  from scipy.sparse import csr_matrix
  from scipy.sparse import csc_matrix
  from pylibcugraph.testing.utils import gen_fixture_params_product
  from cugraph.testing import utils, get_resultset, load_resultset, UNDIRECTED_DATASETS, SMALL_DATASETS
label_desc: Use image node_id 15 for calling a global function with example usage: test_sssp_data_type_conversion(graph_file, source) without return types