@@ -127,6 +127,7 @@ class TestQgsGeometry : public QObject
127
127
void isSimple ();
128
128
129
129
void reshapeGeometryLineMerge ();
130
+ void createCollectionOfType ();
130
131
131
132
private:
132
133
// ! A helper method to do a render check to see if the geometry op is as expected
@@ -5540,5 +5541,38 @@ void TestQgsGeometry::reshapeGeometryLineMerge()
5540
5541
QCOMPARE ( g3D_2.exportToWkt (), QString ( " LineStringZ (-10 -10 -1, 10 10 1, 20 20 2)" ) );
5541
5542
}
5542
5543
5544
+ void TestQgsGeometry::createCollectionOfType ()
5545
+ {
5546
+ std::unique_ptr< QgsGeometryCollection > collect ( QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::Unknown ) );
5547
+ QVERIFY ( !collect );
5548
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::Point );
5549
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiPoint );
5550
+ QVERIFY ( dynamic_cast < QgsMultiPointV2 *>( collect.get () ) );
5551
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::PointM );
5552
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiPointM );
5553
+ QVERIFY ( dynamic_cast < QgsMultiPointV2 *>( collect.get () ) );
5554
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::PointZM );
5555
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiPointZM );
5556
+ QVERIFY ( dynamic_cast < QgsMultiPointV2 *>( collect.get () ) );
5557
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::PointZ );
5558
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiPointZ );
5559
+ QVERIFY ( dynamic_cast < QgsMultiPointV2 *>( collect.get () ) );
5560
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::MultiPoint );
5561
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiPoint );
5562
+ QVERIFY ( dynamic_cast < QgsMultiPointV2 *>( collect.get () ) );
5563
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::LineStringZ );
5564
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiLineStringZ );
5565
+ QVERIFY ( dynamic_cast < QgsMultiLineString *>( collect.get () ) );
5566
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::PolygonM );
5567
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiPolygonM );
5568
+ QVERIFY ( dynamic_cast < QgsMultiPolygonV2 *>( collect.get () ) );
5569
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::GeometryCollectionZ );
5570
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::GeometryCollectionZ );
5571
+ QVERIFY ( dynamic_cast < QgsGeometryCollection *>( collect.get () ) );
5572
+ collect = QgsGeometryFactory::createCollectionOfType ( QgsWkbTypes::CurvePolygonM );
5573
+ QCOMPARE ( collect->wkbType (), QgsWkbTypes::MultiSurfaceM );
5574
+ QVERIFY ( dynamic_cast < QgsMultiSurface *>( collect.get () ) );
5575
+ }
5576
+
5543
5577
QGSTEST_MAIN ( TestQgsGeometry )
5544
5578
#include " testqgsgeometry.moc"
0 commit comments