Ejemplo n.º 1
0
    def testWrongCorners(self):
        """
        Check what happens if the upper_left and lower_right corner are
        specified.

        Postgres ourght to return the upper_right and lower_left anyway.
        """

        upper_right = GeoTypes.pointFromValues(2.0,2.0)
        lower_left = GeoTypes.pointFromValues(1.0,1.0)
        upper_left = GeoTypes.pointFromValues(1.0,2.0)
        lower_right = GeoTypes.pointFromValues(2.0,1.0)
        b = GeoTypes.boxFromPoints(upper_left,lower_right)
                

        self.curs.execute("INSERT INTO %s VALUES (%%(b)s)" % (self.tbl_name,),
                              {'b':b})

        self.curs.execute("SELECT b FROM %s" % (self.tbl_name,))

        ret = self.curs.fetchall()[0]

        ol = ret[0]

        assert ol.__class__.__name__ == "Box"
        assert ol.getUpperRight() == upper_right
        assert ol.getLowerLeft() == lower_left
        assert ol == b, ("Broken box equallity", ol, b)
Ejemplo n.º 2
0
    def testPath(self):

        p1 = GeoTypes.pointFromValues(1.0,2.0)
        p2 = GeoTypes.pointFromValues(3.0,4.0)
        p3 = GeoTypes.pointFromValues(5.0,6.0)
        polygon = GeoTypes.polygonFromPoints(p1,p2,p3)

        self.curs.execute("INSERT INTO %s VALUES (%%(p)s)" % (self.tbl_name,),
                          {'p':polygon})

        self.curs.execute("SELECT p FROM %s" % (self.tbl_name,))

        ret = self.curs.fetchall()[0]

        op = ret[0]
        assert op.__class__.__name__ == "Polygon"
        assert op == polygon
Ejemplo n.º 3
0
    def testLineSeg(self):

        start = GeoTypes.pointFromValues(1.0,2.0)
        end = GeoTypes.pointFromValues(3.0,4.0)
        l = GeoTypes.lineSegFromPoints(start,end)

        self.curs.execute("INSERT INTO %s VALUES (%%(l)s)" % (self.tbl_name,),
                          {'l':l})

        self.curs.execute("SELECT l FROM %s" % (self.tbl_name,))

        ret = self.curs.fetchall()[0]

        ol = ret[0]
        assert ol.__class__.__name__ == "LineSeg"
        assert ol.getStart() == start
        assert ol.getEnd() == end
        assert ol == l
Ejemplo n.º 4
0
    def testCircle(self):

        centre = GeoTypes.pointFromValues(1.0,1.0)
        radius = 5
        c = GeoTypes.circleFromCentreAndRadius(centre,radius)

        self.curs.execute("INSERT INTO %s VALUES (%%(c)s)" % (self.tbl_name,),
                          {'c':c})

        self.curs.execute("SELECT c FROM %s" % (self.tbl_name,))

        ret = self.curs.fetchall()[0]

        oc = ret[0]
        assert oc.__class__.__name__ == "Circle"
        assert oc.getCentre() == centre
        assert oc.getRadius() == radius
        assert oc == c
Ejemplo n.º 5
0
    def testBox(self):

        upper_right = GeoTypes.pointFromValues(2.0,2.0)
        lower_left = GeoTypes.pointFromValues(1.0,1.0)
        b = GeoTypes.boxFromPoints(upper_right,lower_left)

        self.curs.execute("INSERT INTO %s VALUES (%%(b)s)" % (self.tbl_name,),
                          {'b':b})

        self.curs.execute("SELECT b FROM %s" % (self.tbl_name,))

        ret = self.curs.fetchall()[0]

        ol = ret[0]
        assert ol.__class__.__name__ == "Box"
        assert ol.getUpperRight() == upper_right, "%s != %s" % (repr(ol.getUpperRight()),repr(upper_right))
        assert ol.getLowerLeft() == lower_left
        assert ol == b
Ejemplo n.º 6
0
    def run2d(self, test_func):

        p1 = GeoTypes.OGpointFromValues(1.0, 2.0)
        p2 = GeoTypes.OGpointFromValues(3.0, 4.0)

        raw = test_func(self, p1, p2)

        ret = raw[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "OGPoint"
        assert p4.__class__.__name__ == "OGPoint"
        assert p3.getX() == 1.0
        assert p3.getY() == 2.0
        assert p4.getX() == 3.0
        assert p4.getY() == 4.0
Ejemplo n.º 7
0
    def run2d(self, test_func):

        p1 = GeoTypes.OGlineStringFromSequence(((1.0, 2.0), (3.0, 4.0)))
        p2 = GeoTypes.OGlineStringFromSequence(((5.0, 6.0), (7.0, 8.0)))

        raw = test_func(self, p1, p2)
        ret = raw[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "OGLineString"
        assert p4.__class__.__name__ == "OGLineString"
        assert p3[0].getX() == 1.0
        assert p3[0].getY() == 2.0
        assert p3[1].getX() == 3.0
        assert p3[1].getY() == 4.0
        assert p4[0].getX() == 5.0
        assert p4[0].getY() == 6.0
Ejemplo n.º 8
0
    def run2d(self, test_func):

        p1 = GeoTypes.OGmultiPointFromSequence(((1.0, 2.0), (3.0, 4.0)))
        p2 = GeoTypes.OGmultiPointFromSequence(((5.0, 6.0), (7.0, 8.0)))

        raw = test_func(self, p1, p2)
        ret = raw[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "OGMultiPoint"
        assert p4.__class__.__name__ == "OGMultiPoint"

        assert p3[0].getX() == 1.0, "failed p3[0].getX() != %s" % str(
            p3[0].getX())
        assert p3[0].getY() == 2.0
        assert p3[1].getX() == 3.0
        assert p3[1].getY() == 4.0
        assert p4[0].getX() == 5.0
        assert p4[0].getY() == 6.0
Ejemplo n.º 9
0
    def testPoint(self):


        p1 = GeoTypes.pointFromValues(1.0,2.0)
        p2 = GeoTypes.pointFromValues(3.0,4.0)

        self.curs.execute("INSERT INTO %s VALUES (%%(p1)s, %%(p2)s)"  % (self.tbl_name,),
                          {'p1':p1, 'p2':p2})

        self.curs.execute("SELECT p1,p2 FROM %s" % (self.tbl_name,))

        ret = self.curs.fetchall()[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "Point"
        assert p4.__class__.__name__ == "Point"
        assert p3.getX() == 1.0
        assert p3.getY() == 2.0
        assert p4.getX() == 3.0
        assert p4.getY() == 4.0
Ejemplo n.º 10
0
    def run3d(self, test_func):

        p1 = GeoTypes.OGmultiPointFromSequence(
            ((1.0, 2.0, 9.0), (3.0, 4.0, 10.0)))
        p2 = GeoTypes.OGmultiPointFromSequence(
            ((5.0, 6.0, 11.0), (7.0, 8.0, 12.0)))

        raw = test_func(self, p1, p2)

        ret = raw[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "OGMultiPoint"
        assert p4.__class__.__name__ == "OGMultiPoint"
        assert p3[0].getX() == 1.0
        assert p3[0].getY() == 2.0
        assert p3[0].getZ() == 9.0
        assert p4[0].getX() == 5.0
        assert p4[0].getY() == 6.0
        assert p4[0].getZ() == 11.0
Ejemplo n.º 11
0
    def run2d(self, test_func):

        p1 = GeoTypes.OGmultiLineStringFromOGLineStrings(
            GeoTypes.OGlineStringFromSequence(((1.0, 2.0), (3.0, 4.0))),
            GeoTypes.OGlineStringFromSequence(((5.0, 6.0), (7.0, 8.0))))
        p2 = GeoTypes.OGmultiLineStringFromOGLineStrings(
            GeoTypes.OGlineStringFromSequence(((1.0, 2.0), (3.0, 4.0))),
            GeoTypes.OGlineStringFromSequence(((5.0, 6.0), (7.0, 8.0))))

        raw = test_func(self, p1, p2)
        ret = raw[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "OGMultiLineString"
        assert p4.__class__.__name__ == "OGMultiLineString"
Ejemplo n.º 12
0
    def run3d(self, test_func):

        p1 = GeoTypes.OGgeometryCollectionFromOGGeometries(

            # A Polygon
            GeoTypes.OGpolygonFromOGLines(
                GeoTypes.OGlinearRingFromOGPoints(
                    GeoTypes.OGpointFromValues(1, 2, 3),
                    GeoTypes.OGpointFromValues(2, 2, 3),
                    GeoTypes.OGpointFromValues(2, 1, 3),
                    GeoTypes.OGpointFromValues(1, 2, 3),
                ),
                GeoTypes.OGlinearRingFromOGPoints(
                    GeoTypes.OGpointFromValues(1, 2, 3),
                    GeoTypes.OGpointFromValues(2, 2, 3),
                    GeoTypes.OGpointFromValues(2, 1, 3),
                    GeoTypes.OGpointFromValues(1, 2, 3),
                )),

            # A Linear Ring
            GeoTypes.OGlinearRingFromOGPoints(
                GeoTypes.OGpointFromValues(3, 4, 3),
                GeoTypes.OGpointFromValues(4, 4, 3),
                GeoTypes.OGpointFromValues(4, 3, 3),
                GeoTypes.OGpointFromValues(3, 4, 3),
            ),
        )

        p2 = p1

        raw = test_func(self, p1, p2)

        ret = raw[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "OGGeometryCollection"
        assert p4.__class__.__name__ == "OGGeometryCollection"
Ejemplo n.º 13
0
    def run3d(self, test_func):

        p1 = GeoTypes.OGmultiPolygonFromOGPolygons(
            GeoTypes.OGpolygonFromOGLines(
                GeoTypes.OGlinearRingFromOGPoints(
                    GeoTypes.OGpointFromValues(1, 2, 3),
                    GeoTypes.OGpointFromValues(2, 2, 3),
                    GeoTypes.OGpointFromValues(2, 1, 3),
                    GeoTypes.OGpointFromValues(1, 2, 3),
                ),
                GeoTypes.OGlinearRingFromOGPoints(
                    GeoTypes.OGpointFromValues(1, 2, 3),
                    GeoTypes.OGpointFromValues(2, 2, 3),
                    GeoTypes.OGpointFromValues(2, 1, 3),
                    GeoTypes.OGpointFromValues(1, 2, 3),
                )),
            GeoTypes.OGpolygonFromOGLines(
                GeoTypes.OGlinearRingFromOGPoints(
                    GeoTypes.OGpointFromValues(3, 4, 3),
                    GeoTypes.OGpointFromValues(4, 4, 3),
                    GeoTypes.OGpointFromValues(4, 3, 3),
                    GeoTypes.OGpointFromValues(3, 4, 3),
                ),
                GeoTypes.OGlinearRingFromOGPoints(
                    GeoTypes.OGpointFromValues(3, 4, 3),
                    GeoTypes.OGpointFromValues(4, 4, 3),
                    GeoTypes.OGpointFromValues(4, 3, 3),
                    GeoTypes.OGpointFromValues(3, 4, 3),
                )))

        p2 = p1

        raw = test_func(self, p1, p2)

        ret = raw[0]

        p3 = ret[0]
        p4 = ret[1]

        assert p3.__class__.__name__ == "OGMultiPolygon"
        assert p4.__class__.__name__ == "OGMultiPolygon"
Ejemplo n.º 14
0
 def __init__(self):
     self.factory = GeoTypes.OGGeoTypeFactory()
     self.parser = GeoTypes.HEXEWKBParser(factory)
Ejemplo n.º 15
0
 def setUp(self):
     self.factory = GeoTypes.OGGeoTypeFactory()
     self.parser = GeoTypes.HEXEWKBParser(self.factory)