public void RasterMapperMapRasterTest() { // value is coordinate RasterMapper mapper = RasterMapper.FromTransformation(RasterMapMode.ValueIsCoordinate, 300, 1000, 0, 10, 3, 1); for (Int32 i = -100; i < 100; i += 3) { for (Int32 j = -100; j < 100; j += 3) { Int32 rowIndex, columnIndex; mapper.MapRaster(new Coordinate(300 + i * 10, 1000 + j * 3), out rowIndex, out columnIndex); Assert.AreEqual(i, columnIndex); Assert.AreEqual(j, rowIndex); Double floatRowIndex, floatColumnIndex; mapper.MapRaster(new Coordinate(300 + i * 10, 1000 + j * 3), out floatRowIndex, out floatColumnIndex); Assert.AreEqual(i, floatColumnIndex); Assert.AreEqual(j, floatRowIndex); mapper.MapRaster(new Coordinate(300 + i * 10, 1000 + j * 3), RasterMapMode.ValueIsCoordinate, out floatRowIndex, out floatColumnIndex); Assert.AreEqual(i, floatColumnIndex); Assert.AreEqual(j, floatRowIndex); mapper.MapRaster(new Coordinate(295 + i * 10, 998.5 + j * 3), RasterMapMode.ValueIsArea, out floatRowIndex, out floatColumnIndex); Assert.AreEqual(i, floatColumnIndex); Assert.AreEqual(j, floatRowIndex); } } // value is area mapper = RasterMapper.FromTransformation(RasterMapMode.ValueIsArea, 300, 1000, 0, 10, 3, 1); for (Int32 i = -100; i < 100; i += 3) { for (Int32 j = -100; j < 100; j += 3) { Int32 rowIndex, columnIndex; mapper.MapRaster(new Coordinate(300 + i * 10, 1000 + j * 3), out rowIndex, out columnIndex); Assert.AreEqual(i, columnIndex); Assert.AreEqual(j, rowIndex); Double floatRowIndex, floatColumnIndex; mapper.MapRaster(new Coordinate(300 + i * 10, 1000 + j * 3), out floatRowIndex, out floatColumnIndex); Assert.AreEqual(i, floatColumnIndex); Assert.AreEqual(j, floatRowIndex); mapper.MapRaster(new Coordinate(305 + i * 10, 1001.5 + j * 3), RasterMapMode.ValueIsCoordinate, out floatRowIndex, out floatColumnIndex); Assert.AreEqual(i, floatColumnIndex); Assert.AreEqual(j, floatRowIndex); mapper.MapRaster(new Coordinate(300 + i * 10, 1000 + j * 3), RasterMapMode.ValueIsArea, out floatRowIndex, out floatColumnIndex); Assert.AreEqual(i, floatColumnIndex); Assert.AreEqual(j, floatRowIndex); } } }