public void Raster32ValueTest() { Raster32 raster = new Raster32(null, 3, 9, 27, 32, null); // single values for (Int32 bandIndex = 0; bandIndex < raster.NumberOfBands; bandIndex++) { for (Int32 rowIndex = 0; rowIndex < raster.NumberOfRows; rowIndex++) { for (Int32 k = 0; k < raster.NumberOfColumns; k++) { raster.SetValue(rowIndex, k, bandIndex, (UInt32)(bandIndex * rowIndex * k)); Assert.AreEqual(bandIndex * rowIndex * k, raster.GetValue(rowIndex, k, bandIndex), 0); } } } // multiple values for (Int32 rowIndex = 0; rowIndex < raster.NumberOfRows; rowIndex++) { for (Int32 k = 0; k < raster.NumberOfColumns; k++) { raster.SetValues(rowIndex, k, new UInt32[] { (UInt32)rowIndex, (UInt32)k, (UInt32)(rowIndex * k) }); Assert.AreEqual(rowIndex, raster.GetValues(rowIndex, k)[0], 0); Assert.AreEqual(k, raster.GetValues(rowIndex, k)[1], 0); Assert.AreEqual(rowIndex * k, raster.GetValues(rowIndex, k)[2], 0); } } // argument out of range exceptions Assert.Throws <ArgumentOutOfRangeException>(() => raster.GetValue(-1, 0, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.GetValue(raster.NumberOfRows, 0, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.GetValue(0, -1, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.GetValue(0, raster.NumberOfColumns, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.GetValue(0, 0, -1)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.GetValue(0, 0, raster.NumberOfBands)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.SetValue(-1, 0, 0, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.SetValue(raster.NumberOfRows, 0, 0, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.SetValue(0, -1, 0, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.SetValue(0, raster.NumberOfColumns, 0, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.SetValue(0, 0, -1, 0)); Assert.Throws <ArgumentOutOfRangeException>(() => raster.SetValue(0, 0, raster.NumberOfBands, 0)); }
public void Raster32HistogramTest() { SparseArray <Int32> histogramValues = new SparseArray <Int32>(UInt32.MaxValue + 1L); Random random = new Random(); Raster32 raster = new Raster32(null, 1, 100, 100, 32, null); for (Int32 rowIndex = 0; rowIndex < raster.NumberOfRows; rowIndex++) { for (Int32 columnIndex = 0; columnIndex < raster.NumberOfColumns; columnIndex++) { UInt32 value = (UInt32)random.Next(); raster.SetValue(rowIndex, columnIndex, 0, value); histogramValues[value]++; } } for (Int32 valueIndex = 0; valueIndex < raster.GetHistogramValues(0).Count; valueIndex++) { Assert.AreEqual(histogramValues[valueIndex], raster.GetHistogramValues(0)[valueIndex]); } }