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