code: def test_one_polygon_with_hole_one_linestring_crossing_it(
      linestring_generator,
  ):
      gpdlinestring = gpd.GeoSeries(
          LineString([[0.5, 2.0], [3.5, 2.0]])
      )
      gpdpolygon = gpd.GeoSeries(
          Polygon(
              (
                  [0, 0],
                  [0, 4],
                  [4, 4],
                  [4, 0],
                  [0, 0],
              ),
              [
                  (
                      [1, 1],
                      [1, 3],
                      [3, 3],
                      [3, 1],
                      [1, 1],
                  )
              ],
          )
      )
      linestring = cuspatial.from_geopandas(gpdlinestring)
      polygons = cuspatial.from_geopandas(gpdpolygon)
      got = polygons.contains_properly(linestring).values_host
      expected = gpdpolygon.contains(gpdlinestring).values
      assert np.all(got)
      assert not np.any(expected)
  
imports: import cupy
  import geopandas
  import numpy
  import pytest
  from shapely.geometry import LineString, MultiPolygon, Point, Polygon
  import cuspatial
label_desc: Use image node_id 3 for calling a global function with example usage: test_one_polygon_with_hole_one_linestring_crossing_it(linestring_generator) without return types