code: def test_polygonize_full():
      lines = [
          None,
          LineString([(0, 0), (1, 1)]),
          LineString([(0, 0), (0, 1)]),
          LineString([(0, 1), (1, 1)]),
          LineString([(1, 1), (1, 0)]),
          None,
          LineString([(1, 0), (0, 0)]),
          LineString([(5, 5), (6, 6)]),
          LineString([(1, 1), (100, 100)]),
          Point(0, 0),
          None,
      ]
      result = shapely.polygonize_full(lines)
      assert len(result) == 4
      assert all(
          shapely.get_type_id(geom) == 7 for geom in result
      )  # GeometryCollection
      polygons, cuts, dangles, invalid = result
      expected_polygons = GeometryCollection(
          [
              Polygon([(0, 0), (1, 1), (1, 0), (0, 0)]),
              Polygon([(1, 1), (0, 0), (0, 1), (1, 1)]),
          ]
      )
      assert polygons == expected_polygons
      assert cuts == GeometryCollection()
      expected_dangles = GeometryCollection(
          [
              LineString([(1, 1), (100, 100)]),
              LineString([(5, 5), (6, 6)]),
          ]
      )
      assert dangles == expected_dangles
      assert invalid == GeometryCollection()
  
imports: import numpy
  import pytest
  import shapely
  from shapely import Geometry, GeometryCollection, GEOSException, LinearRing, LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon
  from shapely.testing import assert_geometries_equal
  from shapely.tests.common import all_types, empty, empty_line_string, empty_point, empty_polygon, ignore_invalid, line_string, multi_point, point, point_z
label_desc: Use image node_id 39 for calling a global function with example usage: test_polygonize_full() without return types