public void Raster16ValueTest() { Raster16 raster = new Raster16(null, 3, 9, 27, 16, null); // single values for (Int32 bandIndex = 0; bandIndex < raster.NumberOfBands; bandIndex++) { for (Int32 rowIndex = 0; rowIndex < raster.NumberOfRows; rowIndex++) { for (Int32 columnIndex = 0; columnIndex < raster.NumberOfColumns; columnIndex++) { raster.SetValue(rowIndex, columnIndex, bandIndex, (UInt32)(bandIndex * rowIndex * columnIndex)); Assert.AreEqual(bandIndex * rowIndex * columnIndex, raster.GetValue(rowIndex, columnIndex, bandIndex), 0); } } } // multiple values for (Int32 rowIndex = 0; rowIndex < raster.NumberOfRows; rowIndex++) { for (Int32 columnIndex = 0; columnIndex < raster.NumberOfColumns; columnIndex++) { raster.SetValues(rowIndex, columnIndex, new UInt32[] { (UInt32)rowIndex, (UInt32)columnIndex, (UInt32)(rowIndex * columnIndex) }); Assert.AreEqual(rowIndex, raster.GetValues(rowIndex, columnIndex)[0], 0); Assert.AreEqual(columnIndex, raster.GetValues(rowIndex, columnIndex)[1], 0); Assert.AreEqual(rowIndex * columnIndex, raster.GetValues(rowIndex, columnIndex)[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 Raster16HistogramTest() { Int32[] histogramValues = new Int32[UInt16.MaxValue + 1]; Random random = new Random(); Raster16 raster = new Raster16(null, 1, 100, 100, 16, null); for (Int32 rowIndex = 0; rowIndex < raster.NumberOfRows; rowIndex++) { for (Int32 columnIndex = 0; columnIndex < raster.NumberOfColumns; columnIndex++) { UInt16 value = (UInt16)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]); } }