private void TestSpectralInversion() { int hr = 0; SpectralInversion spectral2, spectral1 = SpectralInversion.Inverted; hr = digitalDemux.put_SpectralInversion(ref spectral1); //DsError.ThrowExceptionForHR(hr); hr = digitalDemux.get_SpectralInversion(out spectral2); //DsError.ThrowExceptionForHR(hr); }
public void SpectralInversionExecuteTest() { IGeometryFactory factory = new GeometryFactory(); // integer values SpectralInversion operation = new SpectralInversion(factory.CreateSpectralPolygon(_rasterMock.Object), null); operation.Execute(); Assert.AreEqual(_rasterMock.Object.NumberOfRows, operation.Result.Raster.NumberOfRows); Assert.AreEqual(_rasterMock.Object.NumberOfColumns, operation.Result.Raster.NumberOfColumns); Assert.AreEqual(_rasterMock.Object.NumberOfBands, operation.Result.Raster.NumberOfBands); Assert.AreEqual(_rasterMock.Object.RadiometricResolution, operation.Result.Raster.RadiometricResolution); Assert.AreEqual(_rasterMock.Object.Format, operation.Result.Raster.Format); for (Int32 bandIndex = 0; bandIndex < operation.Result.Raster.NumberOfBands; bandIndex++) { for (Int32 rowIndex = 0; rowIndex < operation.Result.Raster.NumberOfRows; rowIndex++) { for (Int32 columnIndex = 0; columnIndex < operation.Result.Raster.NumberOfColumns; columnIndex++) { Assert.AreEqual(_rasterMock.Object.GetValue(rowIndex, columnIndex, bandIndex), 255 - operation.Result.Raster.GetValue(rowIndex, columnIndex, bandIndex)); } } } // floating point values _rasterMock.Setup(raster => raster.Format).Returns(RasterFormat.Floating); operation = new SpectralInversion(factory.CreateSpectralPolygon(_rasterMock.Object), null); operation.Execute(); for (Int32 bandIndex = 0; bandIndex < operation.Result.Raster.NumberOfBands; bandIndex++) { for (Int32 rowIndex = 0; rowIndex < operation.Result.Raster.NumberOfRows; rowIndex++) { for (Int32 columnIndex = 0; columnIndex < operation.Result.Raster.NumberOfColumns; columnIndex++) { Assert.AreEqual(_rasterMock.Object.GetFloatValue(rowIndex, columnIndex, bandIndex), -operation.Result.Raster.GetFloatValue(rowIndex, columnIndex, bandIndex)); } } } }