public void Raster8ValueTest() { Raster8 raster = new Raster8(null, 3, 9, 27, 8, 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) % (Byte.MaxValue + 1), raster.GetValue(rowIndex, columnIndex, bandIndex), 0); } } } // test case 2: 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); } } // test case 3: 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 Raster8HistogramTest() { Int32[] histogramValues = new Int32[Byte.MaxValue + 1]; Random random = new Random(); Raster8 raster = new Raster8(null, 1, 100, 100, 8, null); for (Int32 rowIndex = 0; rowIndex < raster.NumberOfRows; rowIndex++) { for (Int32 columnIndex = 0; columnIndex < raster.NumberOfColumns; columnIndex++) { Byte value = (Byte)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]); } }