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);
                }
            }
        }