File: test_linemerge.py

package info (click to toggle)
python-shapely 2.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 2,564 kB
  • sloc: python: 18,650; ansic: 6,615; makefile: 88; sh: 62
file content (43 lines) | stat: -rw-r--r-- 1,329 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import unittest

from shapely.geometry import LineString, MultiLineString
from shapely.ops import linemerge


class LineMergeTestCase(unittest.TestCase):
    def test_linemerge(self):
        lines = MultiLineString([[(0, 0), (1, 1)], [(2, 0), (2, 1), (1, 1)]])
        result = linemerge(lines)
        assert isinstance(result, LineString)
        assert not result.is_ring
        assert len(result.coords) == 4
        assert result.coords[0] == (0.0, 0.0)
        assert result.coords[3] == (2.0, 0.0)

        lines2 = MultiLineString([((0, 0), (1, 1)), ((0, 0), (2, 0), (2, 1), (1, 1))])
        result = linemerge(lines2)
        assert result.is_ring
        assert len(result.coords) == 5

        lines3 = [
            LineString([(0, 0), (1, 1)]),
            LineString([(0, 0), (0, 1)]),
        ]
        result = linemerge(lines3)
        assert not result.is_ring
        assert len(result.coords) == 3
        assert result.coords[0] == (0.0, 1.0)
        assert result.coords[2] == (1.0, 1.0)

        lines4 = [
            [(0, 0), (1, 1)],
            [(0, 0), (0, 1)],
        ]
        assert result.equals(linemerge(lines4))

        lines5 = [
            ((0, 0), (1, 1)),
            ((1, 0), (0, 1)),
        ]
        result = linemerge(lines5)
        assert result.geom_type == "MultiLineString"