Skip to content

Commit fd869d8

Browse files
committedSep 26, 2018
Add test for missing vertex check
1 parent b05ea1a commit fd869d8

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed
 

‎tests/src/geometry_checker/testqgsgeometrychecks.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "qgsgeometryfollowboundariescheck.h"
2929
#include "qgsgeometrygapcheck.h"
3030
#include "qgsgeometryholecheck.h"
31+
#include "qgsgeometrymissingvertexcheck.h"
3132
#include "qgsgeometrylineintersectioncheck.h"
3233
#include "qgsgeometrylinelayerintersectioncheck.h"
3334
#include "qgsgeometrymultipartcheck.h"
@@ -81,6 +82,7 @@ class TestQgsGeometryChecks: public QObject
8182
void testDuplicateNodesCheck();
8283
void testFollowBoundariesCheck();
8384
void testGapCheck();
85+
void testMissingVertexCheck();
8486
void testHoleCheck();
8587
void testLineIntersectionCheck();
8688
void testLineLayerIntersectionCheck();
@@ -530,6 +532,33 @@ void TestQgsGeometryChecks::testGapCheck()
530532
cleanupTestContext( context );
531533
}
532534

535+
void TestQgsGeometryChecks::testMissingVertexCheck()
536+
{
537+
QTemporaryDir dir;
538+
QMap<QString, QString> layers;
539+
layers.insert( QStringLiteral( "missing_vertex.gpkg" ), QString() );
540+
QgsGeometryCheckerContext *context = createTestContext( dir, layers );
541+
542+
// Test detection
543+
QList<QgsGeometryCheckError *> checkErrors;
544+
QStringList messages;
545+
546+
QgsGeometryMissingVertexCheck check( context );
547+
check.collectErrors( checkErrors, messages );
548+
listErrors( checkErrors, messages );
549+
550+
const QString layerId = testContext.second.first()->layerId();
551+
QVERIFY( searchCheckErrors( checkErrors, layerId, 0, QgsPointXY( 0.251153, -0.460895 ), QgsVertexId() ).size() == 1 );
552+
QVERIFY( searchCheckErrors( checkErrors, layerId, 3, QgsPointXY( 0.257985, -0.932886 ), QgsVertexId() ).size() == 1 );
553+
QVERIFY( searchCheckErrors( checkErrors, layerId, 5, QgsPointXY( 0.59781, -0.480033 ), QgsVertexId() ).size() == 1 );
554+
QVERIFY( searchCheckErrors( checkErrors, layerId, 5, QgsPointXY( 0.605252, -0.664875 ), QgsVertexId() ).size() == 1 );
555+
QVERIFY( searchCheckErrors( checkErrors, layerId, 4, QgsPointXY( 0.259197, -0.478311 ), QgsVertexId() ).size() == 1 );
556+
557+
QCOMPARE( checkErrors.size(), 5 );
558+
559+
cleanupTestContext( context );
560+
}
561+
533562
void TestQgsGeometryChecks::testHoleCheck()
534563
{
535564
QTemporaryDir dir;
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.