code: def test_split_line_with_line(self):
      # crosses at one point --> return 2 segments
      splitter = LineString([(0, 1), (1, 0)])
      self.helper(self.ls, splitter, 2)
  
      # crosses at two points --> return 3 segments
      splitter = LineString([(0, 1), (1, 0), (1, 2)])
      self.helper(self.ls, splitter, 3)
  
      # overlaps --> raise
      splitter = LineString([(0, 0), (15, 15)])
      with pytest.raises(ValueError):
          self.helper(self.ls, splitter, 1)
  
      # does not cross --> return equal
      splitter = LineString([(0, 1), (0, 2)])
      self.helper(self.ls, splitter, 1)
  
      # is touching the boundary --> return equal
      splitter = LineString([(-1, 1), (1, -1)])
      assert splitter.touches(self.ls)
      self.helper(self.ls, splitter, 1)
  
      # splitter boundary touches interior of line --> return 2 segments
      splitter = LineString([(0, 1), (1, 1)])  # touches at (1, 1)
      assert splitter.touches(self.ls)
      self.helper(self.ls, splitter, 2)
  
imports: import unittest
  import pytest
  from shapely.errors import GeometryTypeError
  from shapely.geometry import LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon
  from shapely.ops import linemerge, split, unary_union
label_desc: Use image node_id 3 for calling the TestSplitLine obj's underlying member method code with example usage: obj.test_split_line_with_line() without return types