File: test_decimal.py

package info (click to toggle)
python-shapely 2.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,528 kB
  • sloc: python: 18,648; ansic: 6,615; makefile: 88; sh: 62
file content (117 lines) | stat: -rw-r--r-- 2,846 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
from decimal import Decimal

import pytest

from shapely import (
    GeometryCollection,
    LinearRing,
    LineString,
    MultiLineString,
    MultiPoint,
    MultiPolygon,
    Point,
    Polygon,
)

items2d = [
    [(0.0, 0.0), (70.0, 120.0), (140.0, 0.0), (0.0, 0.0)],
    [(60.0, 80.0), (80.0, 80.0), (70.0, 60.0), (60.0, 80.0)],
]

items2d_mixed = [
    [
        (Decimal("0.0"), Decimal("0.0")),
        (Decimal("70.0"), 120.0),
        (140.0, Decimal("0.0")),
        (0.0, 0.0),
    ],
    [
        (Decimal("60.0"), Decimal("80.0")),
        (Decimal("80.0"), 80.0),
        (70.0, Decimal("60.0")),
        (60.0, 80.0),
    ],
]

items2d_decimal = [
    [
        (Decimal("0.0"), Decimal("0.0")),
        (Decimal("70.0"), Decimal("120.0")),
        (Decimal("140.0"), Decimal("0.0")),
        (Decimal("0.0"), Decimal("0.0")),
    ],
    [
        (Decimal("60.0"), Decimal("80.0")),
        (Decimal("80.0"), Decimal("80.0")),
        (Decimal("70.0"), Decimal("60.0")),
        (Decimal("60.0"), Decimal("80.0")),
    ],
]

items3d = [
    [(0.0, 0.0, 1), (70.0, 120.0, 2), (140.0, 0.0, 3), (0.0, 0.0, 1)],
    [(60.0, 80.0, 1), (80.0, 80.0, 2), (70.0, 60.0, 3), (60.0, 80.0, 1)],
]

items3d_mixed = [
    [
        (Decimal("0.0"), Decimal("0.0"), Decimal(1)),
        (Decimal("70.0"), 120.0, Decimal(2)),
        (140.0, Decimal("0.0"), 3),
        (0.0, 0.0, 1),
    ],
    [
        (Decimal("60.0"), Decimal("80.0"), Decimal(1)),
        (Decimal("80.0"), 80.0, 2),
        (70.0, Decimal("60.0"), Decimal(3)),
        (60.0, 80.0, 1),
    ],
]

items3d_decimal = [
    [
        (Decimal("0.0"), Decimal("0.0"), Decimal(1)),
        (Decimal("70.0"), Decimal("120.0"), Decimal(2)),
        (Decimal("140.0"), Decimal("0.0"), Decimal(3)),
        (Decimal("0.0"), Decimal("0.0"), Decimal(1)),
    ],
    [
        (Decimal("60.0"), Decimal("80.0"), Decimal(1)),
        (Decimal("80.0"), Decimal("80.0"), Decimal(2)),
        (Decimal("70.0"), Decimal("60.0"), Decimal(3)),
        (Decimal("60.0"), Decimal("80.0"), Decimal(1)),
    ],
]

all_geoms = [
    [
        Point(items[0][0]),
        Point(*items[0][0]),
        MultiPoint(items[0]),
        LinearRing(items[0]),
        LineString(items[0]),
        MultiLineString(items),
        Polygon(items[0]),
        MultiPolygon(
            [
                Polygon(items[1]),
                Polygon(items[0], holes=items[1:]),
            ]
        ),
        GeometryCollection([Point(items[0][0]), Polygon(items[0])]),
    ]
    for items in [
        items2d,
        items2d_mixed,
        items2d_decimal,
        items3d,
        items3d_mixed,
        items3d_decimal,
    ]
]


@pytest.mark.parametrize("geoms", list(zip(*all_geoms)))
def test_decimal(geoms):
    assert geoms[0] == geoms[1] == geoms[2]
    assert geoms[3] == geoms[4] == geoms[5]