code: def bench_quadtree_point_in_polygon(benchmark, polygons):
      df = polygons
      polygons = polygons["geometry"].polygons
      x_points = (cupy.random.random(50000000) - 0.5) * 360
      y_points = (cupy.random.random(50000000) - 0.5) * 180
      scale = 5
      max_depth = 7
      min_size = 125
      points = cuspatial.GeoSeries.from_points_xy(
          cudf.DataFrame(
              {"x": x_points, "y": y_points}
          ).interleave_columns()
      )
      point_indices, quadtree = cuspatial.quadtree_on_points(
          points,
          polygons.x.min(),
          polygons.x.max(),
          polygons.y.min(),
          polygons.y.max(),
          scale,
          max_depth,
          min_size,
      )
      poly_bboxes = cuspatial.polygon_bounding_boxes(df["geometry"])
      intersections = cuspatial.join_quadtree_and_bounding_boxes(
          quadtree,
          poly_bboxes,
          polygons.x.min(),
          polygons.x.max(),
          polygons.y.min(),
          polygons.y.max(),
          scale,
          max_depth,
      )
      benchmark(
          cuspatial.quadtree_point_in_polygon,
          intersections,
          quadtree,
          point_indices,
          points,
          df["geometry"],
      )
  
imports: import cupy
  import geopandas
  import pytest
  import cudf
  import cuspatial
label_desc: Use image node_id 15 for calling a global function with example usage: bench_quadtree_point_in_polygon(benchmark, polygons) without return types