@@ -85,6 +85,7 @@ class TestQgsRasterLayer : public QObject
85
85
void setRenderer ();
86
86
void regression992 (); // test for issue #992 - GeoJP2 images improperly displayed as all black
87
87
void testRefreshRendererIfNeeded ();
88
+ void sample ();
88
89
89
90
90
91
private:
@@ -720,5 +721,27 @@ void TestQgsRasterLayer::testRefreshRendererIfNeeded()
720
721
QGSCOMPARENOTNEAR ( initMinVal, newMinVal, 1e-5 );
721
722
}
722
723
724
+ void TestQgsRasterLayer::sample ()
725
+ {
726
+ QString fileName = mTestDataDir + " landsat-f32-b1.tif" ;
727
+
728
+ QFileInfo rasterFileInfo ( fileName );
729
+ std::unique_ptr< QgsRasterLayer > rl = qgis::make_unique< QgsRasterLayer> ( rasterFileInfo.filePath (),
730
+ rasterFileInfo.completeBaseName () );
731
+ QVERIFY ( rl->isValid () );
732
+ QVERIFY ( !rl->dataProvider ()->sample ( QgsPointXY ( 0 , 0 ), 1 ).isValid () );
733
+ QCOMPARE ( rl->dataProvider ()->sample ( QgsPointXY ( 788461 , 3344957 ), 1 ).toInt (), 125 );
734
+
735
+ fileName = mTestDataDir + " landsat_4326.tif" ;
736
+ rasterFileInfo = QFileInfo ( fileName );
737
+ rl = qgis::make_unique< QgsRasterLayer> ( rasterFileInfo.filePath (),
738
+ rasterFileInfo.completeBaseName () );
739
+ QVERIFY ( rl->isValid () );
740
+ QVERIFY ( !rl->dataProvider ()->sample ( QgsPointXY ( 0 , 0 ), 1 ).isValid () );
741
+ QCOMPARE ( rl->dataProvider ()->sample ( QgsPointXY ( 17.943731 , 30.230791 ), 1 ).toInt (), 125 );
742
+ QCOMPARE ( rl->dataProvider ()->sample ( QgsPointXY ( 17.943731 , 30.230791 ), 2 ).toInt (), 139 );
743
+ QCOMPARE ( rl->dataProvider ()->sample ( QgsPointXY ( 17.943731 , 30.230791 ), 3 ).toInt (), 111 );
744
+ }
745
+
723
746
QGSTEST_MAIN ( TestQgsRasterLayer )
724
747
#include " testqgsrasterlayer.moc"
0 commit comments