public void BinaryOrTest() { string[] shape1 = { "x..............", ".x.............", "..x............", "...x...........", }; string[] shape2 = { "..............x", ".............x.", "............x..", "...........x...", }; var t1 = BinaryTrack.FromString(_gameProps, shape1); var t2 = BinaryTrack.FromString(_gameProps, shape2); var result = t1.BinaryOr(t2); string[] resultShape = { "x.............x", ".x...........x.", "..x.........x..", "...x.......x...", }; MapAssert.MatchesShape(_gameProps, result, resultShape); }
public void Move_Initial() { BinaryTrack sut = BinaryTrack.StartEmptyTrack(_gameProps); Assert.AreEqual((0, 0), sut.Head); var map = sut.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0)); }
public void Move_East() { _sut.OnMove(Direction.East); BinaryTrack result = _sut.FirstPossibleTrack(); var map = result.ToCartesian(); Assert.AreEqual((1, 0), result.Head); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0), (1, 0)); }
public void Move_South() { BinaryTrack sut = BinaryTrack.StartEmptyTrack(_gameProps); var output = sut.MoveSouth(); Assert.AreEqual((0, 1), output.Head); var map = output.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0), (0, 1)); }
public void Move_North() { var shape = new[] { "xx.............", ".xX............", "...............", "...............", }; BinaryTrack sut = BinaryTrack.FromString(_gameProps, shape); var output = sut.MoveNorth(); Assert.AreEqual((2, 0), output.Head); var map = output.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0), (1, 0), (1, 1), (2, 1), (2, 0)); }
public void Move_West_ShiftNeeded() { var shape = new[] { ".xx............", "Xxx............", "...............", "...............", }; BinaryTrack sut = BinaryTrack.FromString(_gameProps, shape); var output = sut.MoveWest(); Assert.AreEqual((0, 1), output.Head); var map = output.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (2, 0), (3, 0), (0, 1), (1, 1), (2, 1), (3, 1)); }
public void Move_West_NoShiftNeeded_CanMove() { var shape = new[] { "...............", "...............", "x.X............", "xxx............", }; BinaryTrack sut = BinaryTrack.FromString(_gameProps, shape); var output = sut.MoveWest(); Assert.AreEqual((1, 2), output.Head); var map = output.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 2), (0, 3), (1, 2), (1, 3), (2, 2), (2, 3)); }
public void Move_South_NoShiftNeeded() { var shape = new[] { "...............", ".............xx", ".............Xx", "..............x", }; BinaryTrack sut = BinaryTrack.FromString(_gameProps, shape); var output = sut.MoveSouth(); Assert.AreEqual((13, 3), output.Head); var map = output.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (13, 1), (14, 1), (13, 2), (14, 2), (13, 3), (14, 3)); }
public void Move_East_NoShiftNeeded_CanMove() { var shape = new[] { "............X.x", "............xxx", "...............", "...............", }; BinaryTrack sut = BinaryTrack.FromString(_gameProps, shape); var output = sut.MoveEast(); Assert.AreEqual((13, 0), output.Head); var map = output.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (12, 0), (13, 0), (14, 0), (12, 1), (13, 1), (14, 1)); }
public void Shift_East() { var gameProps = new GameProps { Width = 15, Height = 4, MyId = 0 }; string[] shape = { ".x.............", "x..............", "...............", "..............." }; BinaryTrack sut = BinaryTrack.FromString(gameProps, shape); sut.TryShiftEast(out var output); Console.WriteLine(output); var map = output.ToCartesian(); MapAssert.AllCoordinatesAreZeroExcept(map, (1, 1), (2, 0)); }
public void Move_SeveralDirection() { _sut.OnMove(Direction.East); _sut.OnMove(Direction.South); _sut.OnMove(Direction.East); _sut.OnMove(Direction.North); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.East); _sut.OnMove(Direction.South); BinaryTrack result = _sut.FirstPossibleTrack(); var map = result.ToCartesian(); Assert.AreEqual((9, 1), result.Head); MapAssert.AllCoordinatesAreZeroExcept(map, (0, 0), (1, 0), (1, 1), (2, 1), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0), (9, 0), (9, 1)); Console.WriteLine(_sut.Debug()); }