@@ -1075,6 +1075,47 @@ void TestQgsGeometry::lineStringV2()
1075
1075
QCOMPARE ( l10.pointN ( 1 ), QgsPointV2 ( QgsWKBTypes::Point25D, 31 , 32 , 33 ) );
1076
1076
QCOMPARE ( l10.pointN ( 2 ), QgsPointV2 ( QgsWKBTypes::Point25D, 41 , 42 , 43 ) );
1077
1077
1078
+ // equality
1079
+ QgsLineStringV2 e1 ;
1080
+ QgsLineStringV2 e2 ;
1081
+ QVERIFY ( e1 == e2 );
1082
+ QVERIFY ( !( e1 != e2 ) );
1083
+ e1 .addVertex ( QgsPointV2 ( 1 , 2 ) );
1084
+ QVERIFY ( !( e1 == e2 ) ); // different number of vertices
1085
+ QVERIFY ( e1 != e2 );
1086
+ e2 .addVertex ( QgsPointV2 ( 1 , 2 ) );
1087
+ QVERIFY ( e1 == e2 );
1088
+ QVERIFY ( !( e1 != e2 ) );
1089
+ e1 .addVertex ( QgsPointV2 ( 1 / 3.0 , 4 / 3.0 ) );
1090
+ e2 .addVertex ( QgsPointV2 ( 2 / 6.0 , 8 / 6.0 ) );
1091
+ QVERIFY ( e1 == e2 ); // check non-integer equality
1092
+ QVERIFY ( !( e1 != e2 ) );
1093
+ e1 .addVertex ( QgsPointV2 ( 7 , 8 ) );
1094
+ e2 .addVertex ( QgsPointV2 ( 6 , 9 ) );
1095
+ QVERIFY ( !( e1 == e2 ) ); // different coordinates
1096
+ QVERIFY ( e1 != e2 );
1097
+ QgsLineStringV2 e3 ;
1098
+ e3 .setPoints ( QList< QgsPointV2 >() << QgsPointV2 ( QgsWKBTypes::PointZ, 1 , 2 , 0 )
1099
+ << QgsPointV2 ( QgsWKBTypes::PointZ, 1 / 3.0 , 4 / 3.0 , 0 )
1100
+ << QgsPointV2 ( QgsWKBTypes::PointZ, 7 , 8 , 0 ) );
1101
+ QVERIFY ( !( e1 == e3 ) ); // different dimension
1102
+ QVERIFY ( e1 != e3 );
1103
+ QgsLineStringV2 e4 ;
1104
+ e4 .setPoints ( QList< QgsPointV2 >() << QgsPointV2 ( QgsWKBTypes::PointZ, 1 , 2 , 2 )
1105
+ << QgsPointV2 ( QgsWKBTypes::PointZ, 1 / 3.0 , 4 / 3.0 , 3 )
1106
+ << QgsPointV2 ( QgsWKBTypes::PointZ, 7 , 8 , 4 ) );
1107
+ QVERIFY ( !( e3 == e4 ) ); // different z coordinates
1108
+ QVERIFY ( e3 != e4 );
1109
+ QgsLineStringV2 e5 ;
1110
+ e5 .setPoints ( QList< QgsPointV2 >() << QgsPointV2 ( QgsWKBTypes::PointM, 1 , 2 , 0 , 1 )
1111
+ << QgsPointV2 ( QgsWKBTypes::PointM, 1 / 3.0 , 4 / 3.0 , 0 , 2 )
1112
+ << QgsPointV2 ( QgsWKBTypes::PointM, 7 , 8 , 0 , 3 ) );
1113
+ QgsLineStringV2 e6 ;
1114
+ e6 .setPoints ( QList< QgsPointV2 >() << QgsPointV2 ( QgsWKBTypes::PointM, 1 , 2 , 0 , 11 )
1115
+ << QgsPointV2 ( QgsWKBTypes::PointM, 1 / 3.0 , 4 / 3.0 , 0 , 12 )
1116
+ << QgsPointV2 ( QgsWKBTypes::PointM, 7 , 8 , 0 , 13 ) );
1117
+ QVERIFY ( !( e5 == e6 ) ); // different m values
1118
+ QVERIFY ( e5 != e6 );
1078
1119
1079
1120
// close/isClosed
1080
1121
QgsLineStringV2 l11;
0 commit comments