Пример #1
0
    def test_loads_point_2d(self):
        cindex = [1]
        x = [30]
        y = [10]

        pt = cf.loads('point', cindex, x, y, start_index=1)
        desired = wkt.loads(self.fixture_wkt['2d']['point'])
        self.assertEqual(pt, desired)

        # Test this will be converted to a multipart if requested.
        mpt = cf.loads('multipoint', cindex, x, y, start_index=1)
        self.assertIsInstance(mpt, MultiPoint)
    def test_loads_point_2d(self):
        cindex = [1]
        x = [30]
        y = [10]

        pt = cf.loads('point', cindex, x, y, start_index=1)
        desired = wkt.loads(self.fixture_wkt['2d']['point'])
        self.assertEqual(pt, desired)

        # Test this will be converted to a multipart if requested.
        mpt = cf.loads('multipoint', cindex, x, y, start_index=1)
        self.assertIsInstance(mpt, MultiPoint)
Пример #3
0
    def test_dumps_polygon(self):
        for d in ['2d', '3d']:
            poly1 = wkt.loads(self.fixture_wkt[d]['polygon'])
            poly2 = wkt.loads(self.fixture_wkt[d]['polygon_hole'])

            geoms = [
                orient(poly1, sign=-1.0), poly2,
                MultiPolygon([poly1, poly2])
            ]
            res = cf.dumps('polygon', geoms)
            # res.describe()
            self.assertEqual(res.outer_ring_order, OuterRingOrder.CCW)
            self.assertEqual(res.closure_convention, ClosureConvention.CLOSED)
            self.assertIsInstance(res, CFGeometryCollection)

            for ctr, c in enumerate(res.cindex):
                loaded = cf.loads('polygon',
                                  c,
                                  res.x,
                                  res.y,
                                  z=res.z,
                                  multipart_break=res.multipart_break,
                                  hole_break=res.hole_break)
                if ctr == 0:
                    desired = orient(geoms[0])
                else:
                    desired = geoms[ctr]
                self.assertTrue(loaded.almost_equals(desired))
    def test_loads_polygon_2d_multipart_hole(self):
        cindex = [0, 1, 2, 3, BreakValue.MULTIPART, 4, 5, 6, 7, 8, 9, BreakValue.HOLE, 10, 11, 12, 13]
        x = [40, 20, 45, 40, 20, 10, 10, 30, 45, 20, 30, 20, 20, 30]
        y = [40, 45, 30, 40, 35, 30, 10, 5, 20, 35, 20, 15, 25, 20]

        p = cf.loads('multipolygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multipolygon_hole'])
        self.assertEqual(p, desired)
    def test_loads_polygon_2d_hole(self):
        cindex = [0, 1, 2, 3, BreakValue.HOLE, 4, 5, 6, 4]
        x = [35, 45, 15, 10, 20, 35, 30]
        y = [10, 45, 40, 20, 30, 35, 20]

        p = cf.loads('polygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['polygon_hole'])
        self.assertEqual(p, desired)
    def test_loads_polygon_2d(self):
        cindex = [0, 1, 2, 3, 0]
        x = [30, 40, 20, 10]
        y = [10, 40, 40, 20]

        p = cf.loads('polygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['polygon'])
        self.assertEqual(p, desired)
    def test_loads_linestring_2d_multipart(self):
        cindex = [0, 1, 2, BreakValue.MULTIPART, 3, 4, 5, 6]
        x = [10, 20, 10, 40, 30, 40, 30]
        y = [10, 20, 40, 40, 30, 20, 10]

        mls = cf.loads('multilinestring', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multilinestring'])
        self.assertEqual(mls, desired)
Пример #8
0
    def test_loads_linestring_2d(self):
        cindex = [0, 1, 2]
        x = [30, 10, 40]
        y = [10, 30, 40]

        ls = cf.loads('LineString', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['linestring'])
        self.assertEqual(ls, desired)
    def test_loads_linestring_2d(self):
        cindex = [0, 1, 2]
        x = [30, 10, 40]
        y = [10, 30, 40]

        ls = cf.loads('LineString', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['linestring'])
        self.assertEqual(ls, desired)
Пример #10
0
    def test_loads_polygon_2d_hole(self):
        cindex = [0, 1, 2, 3, BreakValue.HOLE, 4, 5, 6, 4]
        x = [35, 45, 15, 10, 20, 35, 30]
        y = [10, 45, 40, 20, 30, 35, 20]

        p = cf.loads('polygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['polygon_hole'])
        self.assertEqual(p, desired)
Пример #11
0
    def test_loads_linestring_2d_multipart(self):
        cindex = [0, 1, 2, BreakValue.MULTIPART, 3, 4, 5, 6]
        x = [10, 20, 10, 40, 30, 40, 30]
        y = [10, 20, 40, 40, 30, 20, 10]

        mls = cf.loads('multilinestring', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multilinestring'])
        self.assertEqual(mls, desired)
Пример #12
0
    def test_loads_polygon_2d(self):
        cindex = [0, 1, 2, 3, 0]
        x = [30, 40, 20, 10]
        y = [10, 40, 40, 20]

        p = cf.loads('polygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['polygon'])
        self.assertEqual(p, desired)
    def test_loads_point_2d_multipart(self):
        cindex = [0, BreakValue.MULTIPART, 1, BreakValue.MULTIPART, 2, BreakValue.MULTIPART, 3]
        x = [10, 40, 20, 30]
        y = [40, 30, 20, 10]

        mpt = cf.loads('multipoint', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multipoint'])
        self.assertEqual(mpt, desired)
Пример #14
0
    def test_loads_point_3d(self):
        cindex = [0]
        x = [30]
        y = [10]
        z = [100]

        pt = cf.loads('point', cindex, x, y, z=z)
        desired = wkt.loads(self.fixture_wkt['3d']['point'])
        self.assertEqual(pt, desired)
    def test_loads_polygon_2d_multipart_holes(self):
        cindex = [0, 1, 2, 3, 4, BreakValue.HOLE, 5, 6, 7, 8, BreakValue.HOLE, 9, 10, 11, 12, BreakValue.HOLE, 13, 14,
                  15, 16, BreakValue.MULTIPART, 17, 18, 19, 20, BreakValue.MULTIPART, 21, 22, 23, 24]
        x = [0, 20, 20, 0, 0, 1, 10, 19, 1, 5, 7, 9, 5, 11, 13, 15, 11, 5, 9, 7, 5, 11, 15, 13, 11]
        y = [0, 0, 20, 20, 0, 1, 5, 1, 1, 15, 19, 15, 15, 15, 19, 15, 15, 25, 25, 29, 25, 25, 25, 29, 25]

        p = cf.loads('multipolygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multipolygons_holes'])
        self.assertEqual(p, desired)
Пример #16
0
    def test_loads_linestring_3d(self):
        cindex = [0, 1, 2]
        x = [30, 10, 40]
        y = [10, 30, 40]
        z = [100, 200, 300]

        ls = cf.loads('linestring', cindex, x, y, z=z)
        desired = wkt.loads(self.fixture_wkt['3d']['linestring'])
        self.assertEqual(ls, desired)
    def test_loads_linestring_3d(self):
        cindex = [0, 1, 2]
        x = [30, 10, 40]
        y = [10, 30, 40]
        z = [100, 200, 300]

        ls = cf.loads('linestring', cindex, x, y, z=z)
        desired = wkt.loads(self.fixture_wkt['3d']['linestring'])
        self.assertEqual(ls, desired)
    def test_loads_point_3d(self):
        cindex = [0]
        x = [30]
        y = [10]
        z = [100]

        pt = cf.loads('point', cindex, x, y, z=z)
        desired = wkt.loads(self.fixture_wkt['3d']['point'])
        self.assertEqual(pt, desired)
Пример #19
0
    def test_loads_point_2d_multipart(self):
        cindex = [
            0, BreakValue.MULTIPART, 1, BreakValue.MULTIPART, 2,
            BreakValue.MULTIPART, 3
        ]
        x = [10, 40, 20, 30]
        y = [40, 30, 20, 10]

        mpt = cf.loads('multipoint', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multipoint'])
        self.assertEqual(mpt, desired)
Пример #20
0
    def test_loads_polygon_2d_multipart_hole(self):
        cindex = [
            0, 1, 2, 3, BreakValue.MULTIPART, 4, 5, 6, 7, 8, 9,
            BreakValue.HOLE, 10, 11, 12, 13
        ]
        x = [40, 20, 45, 40, 20, 10, 10, 30, 45, 20, 30, 20, 20, 30]
        y = [40, 45, 30, 40, 35, 30, 10, 5, 20, 35, 20, 15, 25, 20]

        p = cf.loads('multipolygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multipolygon_hole'])
        self.assertEqual(p, desired)
Пример #21
0
    def test_loads_polygon_2d_multipart_holes(self):
        cindex = [
            0, 1, 2, 3, 4, BreakValue.HOLE, 5, 6, 7, 8, BreakValue.HOLE, 9, 10,
            11, 12, BreakValue.HOLE, 13, 14, 15, 16, BreakValue.MULTIPART, 17,
            18, 19, 20, BreakValue.MULTIPART, 21, 22, 23, 24
        ]
        x = [
            0, 20, 20, 0, 0, 1, 10, 19, 1, 5, 7, 9, 5, 11, 13, 15, 11, 5, 9, 7,
            5, 11, 15, 13, 11
        ]
        y = [
            0, 0, 20, 20, 0, 1, 5, 1, 1, 15, 19, 15, 15, 15, 19, 15, 15, 25,
            25, 29, 25, 25, 25, 29, 25
        ]

        p = cf.loads('multipolygon', cindex, x, y)
        desired = wkt.loads(self.fixture_wkt['2d']['multipolygons_holes'])
        self.assertEqual(p, desired)
    def test_dumps_polygon(self):
        for d in ['2d', '3d']:
            poly1 = wkt.loads(self.fixture_wkt[d]['polygon'])
            poly2 = wkt.loads(self.fixture_wkt[d]['polygon_hole'])

            geoms = [orient(poly1, sign=-1.0), poly2, MultiPolygon([poly1, poly2])]
            res = cf.dumps('polygon', geoms)
            # res.describe()
            self.assertEqual(res.outer_ring_order, OuterRingOrder.CCW)
            self.assertEqual(res.closure_convention, ClosureConvention.CLOSED)
            self.assertIsInstance(res, CFGeometryCollection)

            for ctr, c in enumerate(res.cindex):
                loaded = cf.loads('polygon', c, res.x, res.y, z=res.z, multipart_break=res.multipart_break,
                                  hole_break=res.hole_break)
                if ctr == 0:
                    desired = orient(geoms[0])
                else:
                    desired = geoms[ctr]
                self.assertTrue(loaded.almost_equals(desired))