@@ -41,6 +41,7 @@ class TestQgsFeature: public QObject
41
41
void geometry ();
42
42
void asVariant (); // test conversion to and from a QVariant
43
43
void fields ();
44
+ void equality ();
44
45
void attributeUsingField ();
45
46
void dataStream ();
46
47
@@ -359,6 +360,81 @@ void TestQgsFeature::fields()
359
360
QCOMPARE ( copy.fieldNameIndex ( " field2" ), 1 );
360
361
}
361
362
363
+ void TestQgsFeature::equality ()
364
+ {
365
+
366
+ QgsFeature feature;
367
+ feature.setFields ( mFields , true );
368
+ feature.setAttribute ( 0 , QString ( " attr1" ) );
369
+ feature.setAttribute ( 1 , QString ( " attr2" ) );
370
+ feature.setAttribute ( 2 , QString ( " attr3" ) );
371
+ feature.setValid ( true );
372
+ feature.setId ( 1 );
373
+ feature.setGeometry ( QgsGeometry ( new QgsPointV2 ( 1 , 2 ) ) );
374
+
375
+ QgsFeature feature2 = feature;
376
+ QVERIFY ( feature == feature2 );
377
+
378
+ feature2.setAttribute ( 0 , " attr1" );
379
+ QVERIFY ( feature == feature2 );
380
+
381
+ feature2.setAttribute ( 1 , 1 );
382
+ QVERIFY ( feature != feature2 );
383
+
384
+ QgsFeature feature3;
385
+ feature3.setFields ( mFields , true );
386
+ feature3.setAttribute ( 0 , QString ( " attr1" ) );
387
+ feature3.setAttribute ( 1 , QString ( " attr2" ) );
388
+ feature3.setAttribute ( 2 , QString ( " attr3" ) );
389
+ feature3.setValid ( true );
390
+ feature3.setId ( 1 );
391
+ feature3.setGeometry ( QgsGeometry ( new QgsPointV2 ( 1 , 2 ) ) );
392
+ QVERIFY ( feature == feature3 );
393
+
394
+ QgsFeature feature4;
395
+ feature4.setFields ( mFields , true );
396
+ feature4.setAttribute ( 0 , 1 );
397
+ feature4.setAttribute ( 1 , 2 );
398
+ feature4.setAttribute ( 2 , 3 );
399
+ feature4.setValid ( true );
400
+ feature4.setId ( 1 );
401
+ feature4.setGeometry ( QgsGeometry ( new QgsPointV2 ( 1 , 2 ) ) );
402
+ QVERIFY ( feature != feature4 );
403
+
404
+ QgsFeature feature5;
405
+ feature5.setFields ( mFields , true );
406
+ feature5.setAttribute ( 0 , QString ( " attr1" ) );
407
+ feature5.setAttribute ( 1 , QString ( " attr2" ) );
408
+ feature5.setAttribute ( 2 , QString ( " attr3" ) );
409
+ feature5.setValid ( false );
410
+ feature5.setId ( 1 );
411
+ feature5.setGeometry ( QgsGeometry ( new QgsPointV2 ( 1 , 2 ) ) );
412
+
413
+ QVERIFY ( feature != feature5 );
414
+
415
+ QgsFeature feature6;
416
+ feature6.setFields ( mFields , true );
417
+ feature6.setAttribute ( 0 , QString ( " attr1" ) );
418
+ feature6.setAttribute ( 1 , QString ( " attr2" ) );
419
+ feature6.setAttribute ( 2 , QString ( " attr3" ) );
420
+ feature6.setValid ( true );
421
+ feature6.setId ( 2 );
422
+ feature6.setGeometry ( QgsGeometry ( new QgsPointV2 ( 1 , 2 ) ) );
423
+
424
+ QVERIFY ( feature != feature6 );
425
+
426
+ QgsFeature feature7;
427
+ feature7.setFields ( mFields , true );
428
+ feature7.setAttribute ( 0 , QString ( " attr1" ) );
429
+ feature7.setAttribute ( 1 , QString ( " attr2" ) );
430
+ feature7.setAttribute ( 2 , QString ( " attr3" ) );
431
+ feature7.setValid ( true );
432
+ feature7.setId ( 1 );
433
+ feature7.setGeometry ( QgsGeometry ( new QgsPointV2 ( 1 , 3 ) ) );
434
+
435
+ QVERIFY ( feature != feature7 );
436
+ }
437
+
362
438
void TestQgsFeature::attributeUsingField ()
363
439
{
364
440
QgsFeature feature;
0 commit comments