mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
Merge pull request #214 from slarosa/master
Added tests to Geometry test
This commit is contained in:
commit
f5c77536d5
@ -1,13 +1,15 @@
|
||||
import unittest
|
||||
|
||||
from qgis.core import (QgsGeometry,
|
||||
QgsVectorLayer,
|
||||
QgsFeature,
|
||||
QgsPoint,
|
||||
QGis)
|
||||
|
||||
# Convenience instances in case you may need them
|
||||
# not used in this test
|
||||
#from utilities import getQgisTestApp
|
||||
#QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
|
||||
from utilities import getQgisTestApp
|
||||
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
|
||||
|
||||
class TestQgsGeometry(unittest.TestCase):
|
||||
|
||||
@ -55,6 +57,95 @@ class TestQgsGeometry(unittest.TestCase):
|
||||
(QGis.WKBMultiPolygon, myMultiPolygon.type()))
|
||||
assert myMultiPolygon.wkbType() == QGis.WKBMultiPolygon, myMessage
|
||||
|
||||
def testIntersection(self):
|
||||
myLine = QgsGeometry.fromPolyline([QgsPoint(0, 0),QgsPoint(1, 1),QgsPoint(2, 2)])
|
||||
myPoint = QgsGeometry.fromPoint(QgsPoint(1, 1))
|
||||
intersectionGeom = QgsGeometry.intersection(myLine, myPoint)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
(QGis.Point, intersectionGeom.type()))
|
||||
assert intersectionGeom.wkbType() == QGis.WKBPoint, myMessage
|
||||
|
||||
layer = QgsVectorLayer("Point", "intersection", "memory")
|
||||
assert layer.isValid(), "Failed to create valid point memory layer"
|
||||
|
||||
provider = layer.dataProvider()
|
||||
|
||||
ft = QgsFeature()
|
||||
ft.setGeometry(intersectionGeom)
|
||||
provider.addFeatures([ft])
|
||||
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
(1, layer.featureCount()))
|
||||
assert layer.featureCount() == 1, myMessage
|
||||
|
||||
def testBuffer(self):
|
||||
myPoint = QgsGeometry.fromPoint(QgsPoint(1, 1))
|
||||
bufferGeom = myPoint.buffer(10, 5)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
(QGis.Polygon, bufferGeom.type()))
|
||||
assert bufferGeom.wkbType() == QGis.WKBPolygon, myMessage
|
||||
|
||||
layer = QgsVectorLayer("Polygon", "buffer", "memory")
|
||||
assert layer.isValid(), "Failed to create valid polygon memory layer"
|
||||
|
||||
provider = layer.dataProvider()
|
||||
|
||||
ft = QgsFeature()
|
||||
ft.setGeometry(bufferGeom)
|
||||
provider.addFeatures([ft])
|
||||
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
(1, layer.featureCount()))
|
||||
assert layer.featureCount() == 1, myMessage
|
||||
|
||||
def testContains(self):
|
||||
myPoly = QgsGeometry.fromPolygon([[QgsPoint(0, 0),QgsPoint(2, 0),QgsPoint(2, 2),QgsPoint(0, 2), QgsPoint(0, 0)]])
|
||||
myPoint = QgsGeometry.fromPoint(QgsPoint(1, 1))
|
||||
containsGeom = QgsGeometry.contains(myPoly, myPoint)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
("True", containsGeom))
|
||||
assert containsGeom == True, myMessage
|
||||
|
||||
def testTouches(self):
|
||||
myLine = QgsGeometry.fromPolyline([QgsPoint(0, 0),QgsPoint(1, 1),QgsPoint(2, 2)])
|
||||
myPoly = QgsGeometry.fromPolygon([[QgsPoint(0, 0),QgsPoint(1, 1),QgsPoint(2, 0),QgsPoint(0, 0)]])
|
||||
touchesGeom = QgsGeometry.touches(myLine, myPoly)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
("True", touchesGeom))
|
||||
assert touchesGeom == True, myMessage
|
||||
|
||||
def testOverlaps(self):
|
||||
myPolyA = QgsGeometry.fromPolygon([[QgsPoint(0, 0),QgsPoint(1, 3),QgsPoint(2, 0),QgsPoint(0, 0)]])
|
||||
myPolyB = QgsGeometry.fromPolygon([[QgsPoint(0, 0),QgsPoint(2, 0),QgsPoint(2, 2),QgsPoint(0, 2), QgsPoint(0, 0)]])
|
||||
overlapsGeom = QgsGeometry.overlaps(myPolyA, myPolyB)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
("True", overlapsGeom))
|
||||
assert overlapsGeom == True, myMessage
|
||||
|
||||
def testWithin(self):
|
||||
myLine = QgsGeometry.fromPolyline([QgsPoint(0.5, 0.5),QgsPoint(1, 1),QgsPoint(1.5, 1.5)])
|
||||
myPoly = QgsGeometry.fromPolygon([[QgsPoint(0, 0),QgsPoint(2, 0),QgsPoint(2, 2),QgsPoint(0, 2), QgsPoint(0, 0)]])
|
||||
withinGeom = QgsGeometry.within(myLine, myPoly)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
("True", withinGeom))
|
||||
assert withinGeom == True, myMessage
|
||||
|
||||
def testEquals(self):
|
||||
myPointA = QgsGeometry.fromPoint(QgsPoint(1, 1))
|
||||
myPointB = QgsGeometry.fromPoint(QgsPoint(1, 1))
|
||||
equalsGeom = QgsGeometry.equals(myPointA, myPointB)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
("True", equalsGeom))
|
||||
assert equalsGeom == True, myMessage
|
||||
|
||||
def testCrosses(self):
|
||||
myLine = QgsGeometry.fromPolyline([QgsPoint(0, 0),QgsPoint(1, 1),QgsPoint(3, 3)])
|
||||
myPoly = QgsGeometry.fromPolygon([[QgsPoint(1, 0),QgsPoint(2, 0),QgsPoint(2, 2),QgsPoint(1, 2), QgsPoint(1, 0)]])
|
||||
crossesGeom = QgsGeometry.crosses(myLine, myPoly)
|
||||
myMessage = ('Expected:\n%s\nGot:\n%s\n' %
|
||||
("True", crossesGeom))
|
||||
assert crossesGeom == True, myMessage
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user