code: def bench_single_target_shortest_path_length(
      benchmark, graph_obj, backend_wrapper
  ):
      # Use the node with the highest degree
      degrees = graph_obj.degree()  # list of tuples of (node, degree)
      node = max(degrees, key=lambda t: t[1])[0]
      G = get_graph_obj_for_benchmark(graph_obj, backend_wrapper)
  
      result = benchmark.pedantic(
          target=backend_wrapper(
              nx.single_target_shortest_path_length,
              exhaust_returned_iterator=True,
          ),
          args=(G,),
          kwargs=dict(
              target=node,
          ),
          rounds=rounds,
          iterations=iterations,
          warmup_rounds=warmup_rounds,
      )
      # exhaust_returned_iterator=True forces the result to a list, but is not
      # needed for this algo in NX 3.3+ which returns a dict instead of an
      # iterator. Forcing to a list does not change the benchmark timing.
      assert type(result) is list
  
imports: import random
  import networkx
  import pandas
  import pytest
  from cugraph import datasets
  import nx_cugraph
label_desc: Use image node_id 21 for calling a global function with example usage: bench_single_target_shortest_path_length(benchmark, graph_obj, backend_wrapper) without return types