Skip to content

Commit fd3a38f

Browse files
committedSep 19, 2017
More tests
1 parent 5bb359d commit fd3a38f

File tree

2 files changed

+90
-111
lines changed

2 files changed

+90
-111
lines changed
 

‎src/core/geometry/qgscircularstring.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,7 @@ void QgsCircularString::drawAsPolygon( QPainter &p ) const
619619

620620
bool QgsCircularString::insertVertex( QgsVertexId position, const QgsPoint &vertex )
621621
{
622-
if ( position.vertex > mX.size() || position.vertex < 1 )
622+
if ( position.vertex >= mX.size() || position.vertex < 1 )
623623
{
624624
return false;
625625
}

‎tests/src/core/testqgsgeometry.cpp

Lines changed: 89 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,82 +1547,80 @@ void TestQgsGeometry::circularString()
15471547
QCOMPARE( l23.boundingBox(), QgsRectangle( 2, 6, 22, 36 ) );
15481548

15491549
//insert vertex
1550-
#if 0
15511550
//cannot insert vertex in empty line
15521551
QgsCircularString l24;
15531552
QVERIFY( !l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( 6.0, 7.0 ) ) );
15541553
QCOMPARE( l24.numPoints(), 0 );
15551554

1556-
//insert 4d vertex in empty line, should set line to 4d
1557-
l24.clear();
1558-
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::PointZM, 6.0, 7.0, 1.0, 2.0 ) ) );
1559-
QCOMPARE( l24.numPoints(), 1 );
1560-
QVERIFY( l24.is3D() );
1561-
QVERIFY( l24.isMeasure() );
1562-
QCOMPARE( l24.wkbType(), QgsWkbTypes::CircularStringZM );
1563-
QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 6.0, 7.0, 1.0, 2.0 ) );
1564-
15651555
//2d line
15661556
l24.setPoints( QgsPointSequence() << QgsPoint( 1, 2 )
15671557
<< QgsPoint( 11, 12 ) << QgsPoint( 21, 22 ) );
1568-
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( 6.0, 7.0 ) ) );
1569-
QCOMPARE( l24.numPoints(), 4 );
1558+
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 1 ), QgsPoint( 6.0, 7.0 ) ) );
1559+
QCOMPARE( l24.numPoints(), 5 );
15701560
QVERIFY( !l24.is3D() );
15711561
QVERIFY( !l24.isMeasure() );
1572-
QCOMPARE( l24.wkbType(), QgsWkbTypes::LineString );
1562+
QCOMPARE( l24.wkbType(), QgsWkbTypes::CircularString );
1563+
QCOMPARE( l24.pointN( 0 ), QgsPoint( 1.0, 2.0 ) );
1564+
QCOMPARE( l24.pointN( 1 ), QgsPoint( 6.0, 7.0 ) );
1565+
// note - the next point is just testing current behavior - I do NOT know if this is the correct value!
1566+
QGSCOMPARENEAR( l24.pointN( 2 ).x(), -0.66, 0.01 );
1567+
QGSCOMPARENEAR( l24.pointN( 2 ).y(), -0.745, 0.01 );
1568+
QCOMPARE( l24.pointN( 3 ), QgsPoint( 11.0, 12.0 ) );
1569+
QCOMPARE( l24.pointN( 4 ), QgsPoint( 21.0, 22.0 ) );
1570+
15731571
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 1 ), QgsPoint( 8.0, 9.0 ) ) );
15741572
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 2 ), QgsPoint( 18.0, 19.0 ) ) );
1575-
QCOMPARE( l24.pointN( 0 ), QgsPoint( 6.0, 7.0 ) );
1576-
QCOMPARE( l24.pointN( 1 ), QgsPoint( 8.0, 9.0 ) );
1577-
QCOMPARE( l24.pointN( 2 ), QgsPoint( 18.0, 19.0 ) );
1578-
QCOMPARE( l24.pointN( 3 ), QgsPoint( 1.0, 2.0 ) );
1579-
QCOMPARE( l24.pointN( 4 ), QgsPoint( 11.0, 12.0 ) );
1580-
QCOMPARE( l24.pointN( 5 ), QgsPoint( 21.0, 22.0 ) );
1573+
QCOMPARE( l24.numPoints(), 9 );
1574+
QCOMPARE( l24.pointN( 0 ), QgsPoint( 1.0, 2.0 ) );
1575+
QGSCOMPARENEAR( l24.pointN( 1 ).x(), -0.63, 0.01 );
1576+
QGSCOMPARENEAR( l24.pointN( 1 ).y(), -0.774, 0.01 );
1577+
QCOMPARE( l24.pointN( 2 ), QgsPoint( 8.0, 9.0 ) );
1578+
QCOMPARE( l24.pointN( 3 ), QgsPoint( 18.0, 19.0 ) );
1579+
QGSCOMPARENEAR( l24.pointN( 4 ).x(), -0.658, 0.01 );
1580+
QGSCOMPARENEAR( l24.pointN( 4 ).y(), -0.753, 0.01 );
1581+
QCOMPARE( l24.pointN( 5 ), QgsPoint( 6.0, 7.0 ) );
1582+
QGSCOMPARENEAR( l24.pointN( 6 ).x(), -0.666, 0.01 );
1583+
QGSCOMPARENEAR( l24.pointN( 6 ).y(), -0.745, 0.01 );
1584+
QCOMPARE( l24.pointN( 7 ), QgsPoint( 11.0, 12.0 ) );
1585+
QCOMPARE( l24.pointN( 8 ), QgsPoint( 21.0, 22.0 ) );
1586+
15811587
//insert vertex at end
1582-
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 6 ), QgsPoint( 31.0, 32.0 ) ) );
1583-
QCOMPARE( l24.pointN( 6 ), QgsPoint( 31.0, 32.0 ) );
1584-
QCOMPARE( l24.numPoints(), 7 );
1588+
QVERIFY( !l24.insertVertex( QgsVertexId( 0, 0, 9 ), QgsPoint( 31.0, 32.0 ) ) );
15851589

15861590
//insert vertex past end
1587-
QVERIFY( !l24.insertVertex( QgsVertexId( 0, 0, 8 ), QgsPoint( 41.0, 42.0 ) ) );
1588-
QCOMPARE( l24.numPoints(), 7 );
1591+
QVERIFY( !l24.insertVertex( QgsVertexId( 0, 0, 10 ), QgsPoint( 41.0, 42.0 ) ) );
1592+
QCOMPARE( l24.numPoints(), 9 );
15891593

15901594
//insert vertex before start
15911595
QVERIFY( !l24.insertVertex( QgsVertexId( 0, 0, -18 ), QgsPoint( 41.0, 42.0 ) ) );
1592-
QCOMPARE( l24.numPoints(), 7 );
1596+
QCOMPARE( l24.numPoints(), 9 );
15931597

15941598
//insert 4d vertex in 4d line
15951599
l24.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 1, 2, 3 )
15961600
<< QgsPoint( QgsWkbTypes::PointZM, 1, 10, 4, 5 )
15971601
<< QgsPoint( QgsWkbTypes::PointZM, 15, 10, 6, 7 ) );
1598-
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 13, 14 ) ) );
1599-
QCOMPARE( l24.numPoints(), 4 );
1600-
QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 13, 14 ) );
1602+
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 1 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 13, 14 ) ) );
1603+
QCOMPARE( l24.numPoints(), 5 );
1604+
QCOMPARE( l24.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 13, 14 ) );
16011605

16021606
//insert 2d vertex in 4d line
16031607
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 1 ), QgsPoint( 101, 102 ) ) );
1604-
QCOMPARE( l24.numPoints(), 5 );
1605-
QCOMPARE( l24.wkbType(), QgsWkbTypes::LineStringZM );
1608+
QCOMPARE( l24.numPoints(), 7 );
1609+
QCOMPARE( l24.wkbType(), QgsWkbTypes::CircularStringZM );
16061610
QCOMPARE( l24.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 101, 102 ) );
16071611

16081612
//insert 4d vertex in 2d line
16091613
l24.setPoints( QgsPointSequence() << QgsPoint( 1, 2 )
16101614
<< QgsPoint( 11, 12 ) << QgsPoint( 21, 22 ) );
1611-
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::PointZM, 101, 102, 103, 104 ) ) );
1612-
QCOMPARE( l24.numPoints(), 4 );
1613-
QCOMPARE( l24.wkbType(), QgsWkbTypes::LineString );
1614-
QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::Point, 101, 102 ) );
1615-
1616-
//insert first vertex as Point25D
1617-
l24.clear();
1618-
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::Point25D, 101, 102, 103 ) ) );
1619-
QCOMPARE( l24.wkbType(), QgsWkbTypes::LineString25D );
1620-
QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::Point25D, 101, 102, 103 ) );
1615+
QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 1 ), QgsPoint( QgsWkbTypes::PointZM, 101, 102, 103, 104 ) ) );
1616+
QCOMPARE( l24.numPoints(), 5 );
1617+
QCOMPARE( l24.wkbType(), QgsWkbTypes::CircularString );
1618+
QCOMPARE( l24.pointN( 1 ), QgsPoint( QgsWkbTypes::Point, 101, 102 ) );
16211619

16221620
//move vertex
16231621

16241622
//empty line
1625-
QgsLineString l25;
1623+
QgsCircularString l25;
16261624
QVERIFY( !l25.moveVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( 6.0, 7.0 ) ) );
16271625
QVERIFY( l25.isEmpty() );
16281626

@@ -1664,14 +1662,15 @@ void TestQgsGeometry::circularString()
16641662
//delete vertex
16651663

16661664
//empty line
1667-
QgsLineString l26;
1668-
QVERIFY( !l26.deleteVertex( QgsVertexId( 0, 0, 0 ) ) );
1665+
QgsCircularString l26;
1666+
QVERIFY( l26.deleteVertex( QgsVertexId( 0, 0, 0 ) ) );
16691667
QVERIFY( l26.isEmpty() );
16701668

16711669
//valid line
16721670
l26.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 2, 3 )
16731671
<< QgsPoint( QgsWkbTypes::PointZM, 11, 12, 4, 5 )
1674-
<< QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 ) );
1672+
<< QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 )
1673+
<< QgsPoint( QgsWkbTypes::PointZM, 31, 32, 6, 7 ) );
16751674
//out of range vertices
16761675
QVERIFY( !l26.deleteVertex( QgsVertexId( 0, 0, -1 ) ) );
16771676
QVERIFY( !l26.deleteVertex( QgsVertexId( 0, 0, 100 ) ) );
@@ -1680,23 +1679,25 @@ void TestQgsGeometry::circularString()
16801679
QVERIFY( l26.deleteVertex( QgsVertexId( 0, 0, 1 ) ) );
16811680
QCOMPARE( l26.numPoints(), 2 );
16821681
QCOMPARE( l26.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 2, 3 ) );
1683-
QCOMPARE( l26.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 ) );
1684-
//removing the second to last vertex removes both remaining vertices
1682+
QCOMPARE( l26.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 31, 32, 6, 7 ) );
1683+
1684+
//removing the next vertex removes all remaining vertices
16851685
QVERIFY( l26.deleteVertex( QgsVertexId( 0, 0, 0 ) ) );
16861686
QCOMPARE( l26.numPoints(), 0 );
1687-
QVERIFY( !l26.deleteVertex( QgsVertexId( 0, 0, 0 ) ) );
1687+
QVERIFY( l26.isEmpty() );
1688+
QVERIFY( l26.deleteVertex( QgsVertexId( 0, 0, 0 ) ) );
16881689
QVERIFY( l26.isEmpty() );
16891690

16901691
//reversed
1691-
QgsLineString l27;
1692-
std::unique_ptr< QgsLineString > reversed( l27.reversed() );
1692+
QgsCircularString l27;
1693+
std::unique_ptr< QgsCircularString > reversed( l27.reversed() );
16931694
QVERIFY( reversed->isEmpty() );
16941695
l27.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::PointZM, 1, 2, 2, 3 )
16951696
<< QgsPoint( QgsWkbTypes::PointZM, 11, 12, 4, 5 )
16961697
<< QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 ) );
16971698
reversed.reset( l27.reversed() );
16981699
QCOMPARE( reversed->numPoints(), 3 );
1699-
QCOMPARE( reversed->wkbType(), QgsWkbTypes::LineStringZM );
1700+
QCOMPARE( reversed->wkbType(), QgsWkbTypes::CircularStringZM );
17001701
QVERIFY( reversed->is3D() );
17011702
QVERIFY( reversed->isMeasure() );
17021703
QCOMPARE( reversed->pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 ) );
@@ -1705,18 +1706,18 @@ void TestQgsGeometry::circularString()
17051706

17061707
//addZValue
17071708

1708-
QgsLineString l28;
1709-
QCOMPARE( l28.wkbType(), QgsWkbTypes::LineString );
1709+
QgsCircularString l28;
1710+
QCOMPARE( l28.wkbType(), QgsWkbTypes::CircularString );
17101711
QVERIFY( l28.addZValue() );
1711-
QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZ );
1712+
QCOMPARE( l28.wkbType(), QgsWkbTypes::CircularStringZ );
17121713
l28.clear();
17131714
QVERIFY( l28.addZValue() );
1714-
QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZ );
1715+
QCOMPARE( l28.wkbType(), QgsWkbTypes::CircularStringZ );
17151716
//2d line
17161717
l28.setPoints( QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 11, 12 ) );
17171718
QVERIFY( l28.addZValue( 2 ) );
17181719
QVERIFY( l28.is3D() );
1719-
QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZ );
1720+
QCOMPARE( l28.wkbType(), QgsWkbTypes::CircularStringZ );
17201721
QCOMPARE( l28.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZ, 1, 2, 2 ) );
17211722
QCOMPARE( l28.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZ, 11, 12, 2 ) );
17221723
QVERIFY( !l28.addZValue( 4 ) ); //already has z value, test that existing z is unchanged
@@ -1727,32 +1728,25 @@ void TestQgsGeometry::circularString()
17271728
QVERIFY( l28.addZValue( 5 ) );
17281729
QVERIFY( l28.is3D() );
17291730
QVERIFY( l28.isMeasure() );
1730-
QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZM );
1731+
QCOMPARE( l28.wkbType(), QgsWkbTypes::CircularStringZM );
17311732
QCOMPARE( l28.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 5, 3 ) );
17321733
QCOMPARE( l28.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 5, 4 ) );
1733-
//linestring25d
1734-
l28.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
1735-
QCOMPARE( l28.wkbType(), QgsWkbTypes::LineString25D );
1736-
QVERIFY( !l28.addZValue( 5 ) );
1737-
QCOMPARE( l28.wkbType(), QgsWkbTypes::LineString25D );
1738-
QCOMPARE( l28.pointN( 0 ), QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) );
1739-
QCOMPARE( l28.pointN( 1 ), QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
17401734

17411735
//addMValue
17421736

1743-
QgsLineString l29;
1744-
QCOMPARE( l29.wkbType(), QgsWkbTypes::LineString );
1737+
QgsCircularString l29;
1738+
QCOMPARE( l29.wkbType(), QgsWkbTypes::CircularString );
17451739
QVERIFY( l29.addMValue() );
1746-
QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringM );
1740+
QCOMPARE( l29.wkbType(), QgsWkbTypes::CircularStringM );
17471741
l29.clear();
17481742
QVERIFY( l29.addMValue() );
1749-
QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringM );
1743+
QCOMPARE( l29.wkbType(), QgsWkbTypes::CircularStringM );
17501744
//2d line
17511745
l29.setPoints( QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 11, 12 ) );
17521746
QVERIFY( l29.addMValue( 2 ) );
17531747
QVERIFY( !l29.is3D() );
17541748
QVERIFY( l29.isMeasure() );
1755-
QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringM );
1749+
QCOMPARE( l29.wkbType(), QgsWkbTypes::CircularStringM );
17561750
QCOMPARE( l29.pointN( 0 ), QgsPoint( QgsWkbTypes::PointM, 1, 2, 0, 2 ) );
17571751
QCOMPARE( l29.pointN( 1 ), QgsPoint( QgsWkbTypes::PointM, 11, 12, 0, 2 ) );
17581752
QVERIFY( !l29.addMValue( 4 ) ); //already has m value, test that existing m is unchanged
@@ -1763,31 +1757,21 @@ void TestQgsGeometry::circularString()
17631757
QVERIFY( l29.addMValue( 5 ) );
17641758
QVERIFY( l29.is3D() );
17651759
QVERIFY( l29.isMeasure() );
1766-
QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringZM );
1760+
QCOMPARE( l29.wkbType(), QgsWkbTypes::CircularStringZM );
17671761
QCOMPARE( l29.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 3, 5 ) );
17681762
QCOMPARE( l29.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 4, 5 ) );
1769-
//linestring25d, should become LineStringZM
1770-
l29.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
1771-
QCOMPARE( l29.wkbType(), QgsWkbTypes::LineString25D );
1772-
QVERIFY( l29.addMValue( 5 ) );
1773-
QVERIFY( l29.is3D() );
1774-
QVERIFY( l29.isMeasure() );
1775-
QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringZM );
1776-
QCOMPARE( l29.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 3, 5 ) );
1777-
QCOMPARE( l29.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 4, 5 ) );
1778-
17791763

17801764
//dropZValue
1781-
QgsLineString l28d;
1765+
QgsCircularString l28d;
17821766
QVERIFY( !l28d.dropZValue() );
17831767
l28d.setPoints( QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 11, 12 ) );
17841768
QVERIFY( !l28d.dropZValue() );
17851769
l28d.addZValue( 1.0 );
1786-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZ );
1770+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularStringZ );
17871771
QVERIFY( l28d.is3D() );
17881772
QVERIFY( l28d.dropZValue() );
17891773
QVERIFY( !l28d.is3D() );
1790-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1774+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularString );
17911775
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::Point, 1, 2 ) );
17921776
QCOMPARE( l28d.pointN( 1 ), QgsPoint( QgsWkbTypes::Point, 11, 12 ) );
17931777
QVERIFY( !l28d.dropZValue() ); //already dropped
@@ -1796,26 +1780,19 @@ void TestQgsGeometry::circularString()
17961780
QVERIFY( l28d.dropZValue() );
17971781
QVERIFY( !l28d.is3D() );
17981782
QVERIFY( l28d.isMeasure() );
1799-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringM );
1783+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularStringM );
18001784
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::PointM, 1, 2, 0, 4 ) );
18011785
QCOMPARE( l28d.pointN( 1 ), QgsPoint( QgsWkbTypes::PointM, 11, 12, 0, 4 ) );
1802-
//linestring25d
1803-
l28d.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
1804-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString25D );
1805-
QVERIFY( l28d.dropZValue() );
1806-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1807-
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::Point, 1, 2 ) );
1808-
QCOMPARE( l28d.pointN( 1 ), QgsPoint( QgsWkbTypes::Point, 11, 12 ) );
18091786

18101787
//dropMValue
18111788
l28d.setPoints( QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 11, 12 ) );
18121789
QVERIFY( !l28d.dropMValue() );
18131790
l28d.addMValue( 1.0 );
1814-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringM );
1791+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularStringM );
18151792
QVERIFY( l28d.isMeasure() );
18161793
QVERIFY( l28d.dropMValue() );
18171794
QVERIFY( !l28d.isMeasure() );
1818-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1795+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularString );
18191796
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::Point, 1, 2 ) );
18201797
QCOMPARE( l28d.pointN( 1 ), QgsPoint( QgsWkbTypes::Point, 11, 12 ) );
18211798
QVERIFY( !l28d.dropMValue() ); //already dropped
@@ -1824,35 +1801,36 @@ void TestQgsGeometry::circularString()
18241801
QVERIFY( l28d.dropMValue() );
18251802
QVERIFY( !l28d.isMeasure() );
18261803
QVERIFY( l28d.is3D() );
1827-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZ );
1804+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularStringZ );
18281805
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZ, 1, 2, 3, 0 ) );
18291806
QCOMPARE( l28d.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZ, 11, 12, 3, 0 ) );
18301807

18311808
//convertTo
18321809
l28d.setPoints( QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 11, 12 ) );
1833-
QVERIFY( l28d.convertTo( QgsWkbTypes::LineString ) );
1834-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1835-
QVERIFY( l28d.convertTo( QgsWkbTypes::LineStringZ ) );
1836-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZ );
1810+
QVERIFY( l28d.convertTo( QgsWkbTypes::CircularString ) );
1811+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularString );
1812+
QVERIFY( l28d.convertTo( QgsWkbTypes::CircularStringZ ) );
1813+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularStringZ );
18371814
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZ, 1, 2 ) );
1838-
l28d.setZAt( 0, 5.0 );
1839-
QVERIFY( l28d.convertTo( QgsWkbTypes::LineString25D ) );
1840-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString25D );
1841-
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::Point25D, 1, 2, 5.0 ) );
1842-
QVERIFY( l28d.convertTo( QgsWkbTypes::LineStringZM ) );
1843-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZM );
1815+
1816+
QVERIFY( l28d.convertTo( QgsWkbTypes::CircularStringZM ) );
1817+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularStringZM );
1818+
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2 ) );
1819+
l28d.moveVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( 1, 2, 5 ) );
18441820
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 5.0 ) );
1845-
l28d.setMAt( 0, 6.0 );
1846-
QVERIFY( l28d.convertTo( QgsWkbTypes::LineStringM ) );
1847-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringM );
1821+
//l28d.setMAt( 0, 6.0 );
1822+
QVERIFY( l28d.convertTo( QgsWkbTypes::CircularStringM ) );
1823+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularStringM );
1824+
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::PointM, 1, 2 ) );
1825+
l28d.moveVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( 1, 2, 0, 6 ) );
18481826
QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::PointM, 1, 2, 0.0, 6.0 ) );
1849-
QVERIFY( l28d.convertTo( QgsWkbTypes::LineString ) );
1850-
QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1827+
QVERIFY( l28d.convertTo( QgsWkbTypes::CircularString ) );
1828+
QCOMPARE( l28d.wkbType(), QgsWkbTypes::CircularString );
18511829
QCOMPARE( l28d.pointN( 0 ), QgsPoint( 1, 2 ) );
18521830
QVERIFY( !l28d.convertTo( QgsWkbTypes::Polygon ) );
18531831

18541832
//isRing
1855-
QgsLineString l30;
1833+
QgsCircularString l30;
18561834
QVERIFY( !l30.isRing() );
18571835
l30.setPoints( QgsPointSequence() << QgsPoint( 1, 2 ) << QgsPoint( 11, 12 ) << QgsPoint( 1, 2 ) );
18581836
QVERIFY( !l30.isRing() ); //<4 points
@@ -1862,7 +1840,7 @@ void TestQgsGeometry::circularString()
18621840
QVERIFY( l30.isRing() );
18631841

18641842
//coordinateSequence
1865-
QgsLineString l31;
1843+
QgsCircularString l31;
18661844
QgsCoordinateSequence coords = l31.coordinateSequence();
18671845
QCOMPARE( coords.count(), 1 );
18681846
QCOMPARE( coords.at( 0 ).count(), 1 );
@@ -1878,6 +1856,7 @@ void TestQgsGeometry::circularString()
18781856
QCOMPARE( coords.at( 0 ).at( 0 ).at( 1 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 4, 5 ) );
18791857
QCOMPARE( coords.at( 0 ).at( 0 ).at( 2 ), QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 ) );
18801858

1859+
#if 0
18811860
//nextVertex
18821861

18831862
QgsLineString l32;

0 commit comments

Comments
 (0)