Skip to content

Commit c77afed

Browse files
committedSep 21, 2017
Expand geometry unit test coverage
1 parent 9caa722 commit c77afed

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
 

‎tests/src/core/testqgsgeometry.cpp

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,6 +1005,9 @@ void TestQgsGeometry::circularString()
10051005
QVERIFY( l1.hasCurvedSegments() );
10061006
QCOMPARE( l1.area(), 0.0 );
10071007
QCOMPARE( l1.perimeter(), 0.0 );
1008+
QgsPointSequence pts;
1009+
l1.points( pts );
1010+
QVERIFY( pts.empty() );
10081011

10091012
//setPoints
10101013
QgsCircularString l2;
@@ -1021,6 +1024,8 @@ void TestQgsGeometry::circularString()
10211024
QVERIFY( l2.hasCurvedSegments() );
10221025
QCOMPARE( l2.area(), 0.0 );
10231026
QCOMPARE( l2.perimeter(), 0.0 );
1027+
l2.points( pts );
1028+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( 1.0, 2.0 ) );
10241029

10251030
//setting first vertex should set linestring z/m type
10261031
QgsCircularString l3;
@@ -1030,6 +1035,8 @@ void TestQgsGeometry::circularString()
10301035
QVERIFY( !l3.isMeasure() );
10311036
QCOMPARE( l3.wkbType(), QgsWkbTypes::CircularStringZ );
10321037
QCOMPARE( l3.wktTypeStr(), QString( "CircularStringZ" ) );
1038+
l3.points( pts );
1039+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZ, 1.0, 2.0, 3.0 ) );
10331040

10341041
QgsCircularString l4;
10351042
l4.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointM, 1.0, 2.0, 0.0, 3.0 ) );
@@ -1038,6 +1045,8 @@ void TestQgsGeometry::circularString()
10381045
QVERIFY( l4.isMeasure() );
10391046
QCOMPARE( l4.wkbType(), QgsWkbTypes::CircularStringM );
10401047
QCOMPARE( l4.wktTypeStr(), QString( "CircularStringM" ) );
1048+
l4.points( pts );
1049+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointM, 1.0, 2.0, 0.0, 3.0 ) );
10411050

10421051
QgsCircularString l5;
10431052
l5.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1.0, 2.0, 3.0, 4.0 ) );
@@ -1046,6 +1055,8 @@ void TestQgsGeometry::circularString()
10461055
QVERIFY( l5.isMeasure() );
10471056
QCOMPARE( l5.wkbType(), QgsWkbTypes::CircularStringZM );
10481057
QCOMPARE( l5.wktTypeStr(), QString( "CircularStringZM" ) );
1058+
l5.points( pts );
1059+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1.0, 2.0, 3.0, 4.0 ) );
10491060

10501061
//clear
10511062
l5.clear();
@@ -1072,6 +1083,8 @@ void TestQgsGeometry::circularString()
10721083
QVERIFY( !l8.isMeasure() );
10731084
QCOMPARE( l8.wkbType(), QgsWkbTypes::CircularString );
10741085
QVERIFY( l8.hasCurvedSegments() );
1086+
l8.points( pts );
1087+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 2, 3 ) << QgsPoint( 3, 4 ) );
10751088

10761089
//setPoints with empty list, should clear linestring
10771090
l8.setPoints( QgsPointSequence() );
@@ -1082,34 +1095,44 @@ void TestQgsGeometry::circularString()
10821095
QCOMPARE( l8.ringCount(), 0 );
10831096
QCOMPARE( l8.partCount(), 0 );
10841097
QCOMPARE( l8.wkbType(), QgsWkbTypes::CircularString );
1098+
l8.points( pts );
1099+
QVERIFY( pts.empty() );
10851100

10861101
//setPoints with z
10871102
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZ, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::PointZ, 2, 3, 4 ) );
10881103
QCOMPARE( l8.numPoints(), 2 );
10891104
QVERIFY( l8.is3D() );
10901105
QVERIFY( !l8.isMeasure() );
10911106
QCOMPARE( l8.wkbType(), QgsWkbTypes::CircularStringZ );
1107+
l8.points( pts );
1108+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZ, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::PointZ, 2, 3, 4 ) );
10921109

10931110
//setPoints with m
10941111
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointM, 1, 2, 0, 3 ) << QgsPoint( QgsWkbTypes::PointM, 2, 3, 0, 4 ) );
10951112
QCOMPARE( l8.numPoints(), 2 );
10961113
QVERIFY( !l8.is3D() );
10971114
QVERIFY( l8.isMeasure() );
10981115
QCOMPARE( l8.wkbType(), QgsWkbTypes::CircularStringM );
1116+
l8.points( pts );
1117+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointM, 1, 2, 0, 3 ) << QgsPoint( QgsWkbTypes::PointM, 2, 3, 0, 4 ) );
10991118

11001119
//setPoints with zm
11011120
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointZM, 2, 3, 4, 5 ) );
11021121
QCOMPARE( l8.numPoints(), 2 );
11031122
QVERIFY( l8.is3D() );
11041123
QVERIFY( l8.isMeasure() );
11051124
QCOMPARE( l8.wkbType(), QgsWkbTypes::CircularStringZM );
1125+
l8.points( pts );
1126+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointZM, 2, 3, 4, 5 ) );
11061127

11071128
//setPoints with MIXED dimensionality of points
11081129
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointM, 2, 3, 0, 5 ) );
11091130
QCOMPARE( l8.numPoints(), 2 );
11101131
QVERIFY( l8.is3D() );
11111132
QVERIFY( l8.isMeasure() );
11121133
QCOMPARE( l8.wkbType(), QgsWkbTypes::CircularStringZM );
1134+
l8.points( pts );
1135+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointZM, 2, 3, 0, 5 ) );
11131136

11141137
//test point
11151138
QCOMPARE( l8.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) );
@@ -2542,6 +2565,9 @@ void TestQgsGeometry::lineString()
25422565
QVERIFY( !l8.isMeasure() );
25432566
QCOMPARE( l8.wkbType(), QgsWkbTypes::LineString );
25442567
QVERIFY( !l8.hasCurvedSegments() );
2568+
QgsPointSequence pts;
2569+
l8.points( pts );
2570+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 2, 3 ) << QgsPoint( 3, 4 ) );
25452571

25462572
//setPoints with empty list, should clear linestring
25472573
l8.setPoints( QgsPointSequence() );
@@ -2552,13 +2578,17 @@ void TestQgsGeometry::lineString()
25522578
QCOMPARE( l8.ringCount(), 0 );
25532579
QCOMPARE( l8.partCount(), 0 );
25542580
QCOMPARE( l8.wkbType(), QgsWkbTypes::LineString );
2581+
l8.points( pts );
2582+
QVERIFY( pts.isEmpty() );
25552583

25562584
//setPoints with z
25572585
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZ, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::PointZ, 2, 3, 4 ) );
25582586
QCOMPARE( l8.numPoints(), 2 );
25592587
QVERIFY( l8.is3D() );
25602588
QVERIFY( !l8.isMeasure() );
25612589
QCOMPARE( l8.wkbType(), QgsWkbTypes::LineStringZ );
2590+
l8.points( pts );
2591+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZ, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::PointZ, 2, 3, 4 ) );
25622592

25632593
//setPoints with 25d
25642594
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 4 ) << QgsPoint( QgsWkbTypes::Point25D, 2, 3, 4 ) );
@@ -2567,27 +2597,35 @@ void TestQgsGeometry::lineString()
25672597
QVERIFY( !l8.isMeasure() );
25682598
QCOMPARE( l8.wkbType(), QgsWkbTypes::LineString25D );
25692599
QCOMPARE( l8.pointN( 0 ), QgsPoint( QgsWkbTypes::Point25D, 1, 2, 4 ) );
2600+
l8.points( pts );
2601+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 4 ) << QgsPoint( QgsWkbTypes::Point25D, 2, 3, 4 ) );
25702602

25712603
//setPoints with m
25722604
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointM, 1, 2, 0, 3 ) << QgsPoint( QgsWkbTypes::PointM, 2, 3, 0, 4 ) );
25732605
QCOMPARE( l8.numPoints(), 2 );
25742606
QVERIFY( !l8.is3D() );
25752607
QVERIFY( l8.isMeasure() );
25762608
QCOMPARE( l8.wkbType(), QgsWkbTypes::LineStringM );
2609+
l8.points( pts );
2610+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointM, 1, 2, 0, 3 ) << QgsPoint( QgsWkbTypes::PointM, 2, 3, 0, 4 ) );
25772611

25782612
//setPoints with zm
25792613
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointZM, 2, 3, 4, 5 ) );
25802614
QCOMPARE( l8.numPoints(), 2 );
25812615
QVERIFY( l8.is3D() );
25822616
QVERIFY( l8.isMeasure() );
25832617
QCOMPARE( l8.wkbType(), QgsWkbTypes::LineStringZM );
2618+
l8.points( pts );
2619+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointZM, 2, 3, 4, 5 ) );
25842620

25852621
//setPoints with MIXED dimensionality of points
25862622
l8.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointM, 2, 3, 0, 5 ) );
25872623
QCOMPARE( l8.numPoints(), 2 );
25882624
QVERIFY( l8.is3D() );
25892625
QVERIFY( l8.isMeasure() );
25902626
QCOMPARE( l8.wkbType(), QgsWkbTypes::LineStringZM );
2627+
l8.points( pts );
2628+
QCOMPARE( pts, QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) << QgsPoint( QgsWkbTypes::PointZM, 2, 3, 0, 5 ) );
25912629

25922630
//test point
25932631
QCOMPARE( l8.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 4, 5 ) );

0 commit comments

Comments
 (0)
Please sign in to comment.