public void ReverseVerticalTest() { BasicMap reversed = _map.ReverseVertical(); for (int i = 0; i < reversed.Width; i++) { for (int j = 0; j < reversed.Height; j++) { Coord rev = new Coord(i, j); Coord orig = new Coord(i, _map.Height - 1 - j); BasicTerrain r = reversed.GetTerrain <BasicTerrain>(rev); BasicTerrain o = _map.GetTerrain <BasicTerrain>(orig); Assert.AreEqual(r.Glyph, o.Glyph, "ReverseVertical() did not edit x/y values correctly at Coord(" + i.ToString() + ", " + j.ToString() + ")."); } } }
public static BasicMap RotateDiscreet(this BasicMap m, int degrees) { if (degrees % 90 != 0) { throw new ArgumentOutOfRangeException(nameof(degrees)); } BasicMap map = m; for (int i = degrees; i > 0; i -= 90) { map = map.SwapXy(); map = map.ReverseVertical(); } return(map); }