From 8525448b2a20cef15826b90b24233c075c998024 Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Thu, 25 Sep 2025 08:49:23 +0100 Subject: [PATCH] add tests --- tests/src/core/testqgsrasterlayer.cpp | 1 - tests/src/python/test_qgsrasterlayer.py | 48 +++++++++++++++++- .../raster/band1_byte_ct_alpha_epsg4326.tif | Bin 0 -> 2738 bytes .../raster/band1_byte_noct_alpha_epsg4326.tif | Bin 0 -> 976 bytes 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 tests/testdata/raster/band1_byte_ct_alpha_epsg4326.tif create mode 100644 tests/testdata/raster/band1_byte_noct_alpha_epsg4326.tif diff --git a/tests/src/core/testqgsrasterlayer.cpp b/tests/src/core/testqgsrasterlayer.cpp index f5212f4e436..3ebac49d957 100644 --- a/tests/src/core/testqgsrasterlayer.cpp +++ b/tests/src/core/testqgsrasterlayer.cpp @@ -234,7 +234,6 @@ void TestQgsRasterLayer::pseudoColor() } void TestQgsRasterLayer::populateColorRampShader( QgsColorRampShader *colorRampShader, QgsColorRamp *colorRamp, int numberOfEntries ) - { // adapted from QgsSingleBandPseudoColorRendererWidget::on_mClassifyButton_clicked() // and TestQgsRasterLayer::pseudoColor() diff --git a/tests/src/python/test_qgsrasterlayer.py b/tests/src/python/test_qgsrasterlayer.py index a6fd3796565..1abae1ffcda 100644 --- a/tests/src/python/test_qgsrasterlayer.py +++ b/tests/src/python/test_qgsrasterlayer.py @@ -411,7 +411,6 @@ class TestQgsRasterLayer(QgisTestCase): self.assertIsInstance(layer.serverProperties(), QgsMapLayerServerProperties) def testQgsRasterMinMaxOrigin(self): - mmo = QgsRasterMinMaxOrigin() mmo_default = QgsRasterMinMaxOrigin() self.assertEqual(mmo, mmo_default) @@ -1272,6 +1271,53 @@ class TestQgsRasterLayer(QgisTestCase): ) self.assertEqual(rl.renderer().opacity(), 0.6) + def testRasterType(self): + """Test that raster type is correctly assigned/detected""" + # multiband + file_path = os.path.join( + unitTestDataPath(), "raster", "band3_byte_noct_epsg4326.tif" + ) + layer = QgsRasterLayer(file_path, "test_raster", "gdal") + self.assertTrue(layer.isValid()) + self.assertEqual(layer.bandCount(), 3) + self.assertEqual(layer.rasterType(), Qgis.RasterLayerType.Multiband) + + # singleband, gray + file_path = os.path.join( + unitTestDataPath(), "raster", "band1_byte_noct_epsg4326.tif" + ) + layer = QgsRasterLayer(file_path, "test_raster", "gdal") + self.assertTrue(layer.isValid()) + self.assertEqual(layer.bandCount(), 1) + self.assertEqual(layer.rasterType(), Qgis.RasterLayerType.GrayOrUndefined) + + # singleband, palette + file_path = os.path.join( + unitTestDataPath(), "raster", "band1_byte_ct_epsg4326.tif" + ) + layer = QgsRasterLayer(file_path, "test_raster", "gdal") + self.assertTrue(layer.isValid()) + self.assertEqual(layer.bandCount(), 1) + self.assertEqual(layer.rasterType(), Qgis.RasterLayerType.Palette) + + # gray with alpha + file_path = os.path.join( + unitTestDataPath(), "raster", "band1_byte_noct_alpha_epsg4326.tif" + ) + layer = QgsRasterLayer(file_path, "test_raster", "gdal") + self.assertTrue(layer.isValid()) + self.assertEqual(layer.bandCount(), 2) + self.assertEqual(layer.rasterType(), Qgis.RasterLayerType.GrayOrUndefined) + + # paletted with alpha + file_path = os.path.join( + unitTestDataPath(), "raster", "band1_byte_ct_alpha_epsg4326.tif" + ) + layer = QgsRasterLayer(file_path, "test_raster", "gdal") + self.assertTrue(layer.isValid()) + self.assertEqual(layer.bandCount(), 2) + self.assertEqual(layer.rasterType(), Qgis.RasterLayerType.Palette) + class TestQgsRasterLayerTransformContext(QgisTestCase): diff --git a/tests/testdata/raster/band1_byte_ct_alpha_epsg4326.tif b/tests/testdata/raster/band1_byte_ct_alpha_epsg4326.tif new file mode 100644 index 0000000000000000000000000000000000000000..a2b45ba3ba0b8edbba994e1a2861122c15ace17f GIT binary patch literal 2738 zcmeHJc{EgQ9DZkPW66>%g_WKmi!2>Sp`=9% zDJdyw(V~<@R1zhn{J!^EzC%tQ|NGwe-t#{9d4JDy&wb9l_xxBabwoi3Nh3t!LnMqu z@JZ^2$rzI{N5PY?mnZ53dodrzQY8LvZIduUGQB*Zk?qBVr(ADMDaMNZd@L|V_-Mtv zQ$H;mW5R=kr+9=IQG#r+|JFz`B#5ym#@ReRM8!BB;~bt?cYP(sxjb_BQ`KS|o=Qfp z*r=5d{X58Hettng3PnUjOiWx{QgZa@F=J$9<>kkXQ&b#3o=R0#o-|2SRZUG@ecCiF zEgDTnM^Dedz{qI&bQ2RZGYgBEGnvd;vu4k>v9Yzaw|8)Ga&mETb)7$d;ljm>-Q77H zFE1aTWy@BqSh>>AFCbv`>NRWDt_=)*d`YWn!Gxw)mKwe{=Q z_V$jBpFe;7f)PD>UVsrD0sQ{m+4RHz zFJHcR@$6Yu)#JwxA3k_+|9*LSS=sH|w{G3MSzKIHbnV)eD+L7?FP=Yt?%dh4xw+Zd zr%q*No;;bJo|>AHa_rcVBZm(sB_$>%B<$N4A0HPN8@qGojvY}^+qXwXZrvIlzIk(K z=!OmJ*RNa02KxK2TIK7zeEHI)-rk;`9v(}UELyZ+ft#C)3!CleICrj{-JCfr zmbJB&m8B(vVQy|}I%9^hv7w>9zOF8vuC1-9si84->Xa#yC#$GToH${El9GbL*s*eQ zGBVQAQc@BUqeh8}3JVJf2?+2JzmWgO2v5Mon#r)W^Wk#5Ib4pJ2$gEW;`;be{W*R< zrpjz*hBJ%p%(7&=+cDf&b}n|x)HNKxz*TsUrfjC8uWzDFl>e8`ieW!MMAtXc($O7S z$Fd)Mzadp@XC~8X-hlfV(Y5qw28Oyu1_pZi217c`W7x8o?haN?mR9!81B~c2+K}o& zDbbb9hM^je(eNaH#xpF{pYaS!^p`}imTue^h>7;V*QoEKYBBFYeQO{8x0O=Zvm9*AgYNT^9+i(e4$YC_iq3Qfd(4 zXOZsg#&ES}Q;qaO5g7ykkO+u@1W3UckcF{b3NRjXDxeB#paGg)G|=e+GN8e~8wWI;CM xLLTH}t^lq=5fnoSltLMlLj~p@Llr!SYN&x)sDlP*#9T9cfi`G|4(Nm~_y?s4PTiUg?54A3=WdzouORNQv8MH9Os?2~01Lqt> z5r!a&2)@Wv5MeEdFM=q742Ix~2qFj~6JKN^h#>fRZkkEU(1Q08&hLKreCH;)$1t{& zLPV>HqyR}wA%3I=mYHSN6rKTJ7kR-3ZkO6TuM!|y>+8bP;j^f@&d-@)-qhe7Y{)m6 zg-_zS;zF3X91XKDJ`tuM^BD8A8z7ar%3O8BUj96D&6T|`5vH*zna24g=QvM{bbnSK z$d?`asO{L9kgBE)r(97_*p>3`h-vATVOmC?Ih5B+Mt*-jqMo)Zr;hWU7RkgCiFCI} z|CcYP7n)4bM5-&+)7obg7N6JBWm?&6uGn;5D%us-lDm3R$z(i{Y+0eG4;a~@y}7}@ zT)}E86xFo?Q}VXQ%>-U!w&3(h8V9Gj{^3wSVRd2aR`TT1Z5247;7gn0taVs7NaG2Y25<2W@9_a2 T@d=+<`+~3dhVS@+pZJB}uG=q7 literal 0 HcmV?d00001