コード例 #1
0
        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);
        }
コード例 #2
0
        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));
                    }
                }
            }
        }