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]
|