static void Main(string[] args) { string input = string.Empty; IRobotPosition myHorsePosition = new RobotPositionService(); while (true) { input = Console.ReadLine(); try { string[] temp = input.Split(); switch (temp[0].ToUpper()) { case "PLACE": var temp2 = temp[1].Split(","); if (temp2.Length == 3) { myHorsePosition.place(Int32.Parse(temp2[0]), Int32.Parse(temp2[1]), temp2[2]); } else { Console.WriteLine("Invalid String"); } break; case "LEFT": myHorsePosition.left(); break; case "RIGHT": myHorsePosition.right(); break; case "MOVE": myHorsePosition.move(); break; case "REPORT": myHorsePosition.report(); break; default: break; } } catch (Exception e) { Console.WriteLine(e.Message); } } }
public void Test_RobotPositionService_GetGridIdentifer() { IDataService dataService = new DataService(); IRobotPositionService service = new RobotPositionService(dataService); IGridCoordinate gridCoordinate = new GridCoordinate { MaxXCoordinate = 5, MaxYCoordinate = 3 }; IGridIdentifer gridIdentifer = service.GetGridIdentifer(gridCoordinate); Assert.AreEqual(1, gridIdentifer.GridID); }
public void Test_RobotPositionService_GetFinalPostion() { IDataService dataService = new DataService(); IRobotPositionService service = new RobotPositionService(dataService); IPositionStarting positionStarting1 = new PositionStarting { StartingXPosition = 1, StartingYPosition = 1, Orientation = 'E', Instructions = "RFRFRFRF" }; IPositionFinal positionFinal1 = service.GetFinalPostion(1, positionStarting1); Assert.AreEqual(1, positionFinal1.FinalXPosition); Assert.AreEqual(1, positionFinal1.FinalYPosition); Assert.AreEqual('E', positionFinal1.FinalOrientation); Assert.AreEqual(false, positionFinal1.Lost); IPositionStarting positionStarting2 = new PositionStarting { StartingXPosition = 3, StartingYPosition = 2, Orientation = 'N', Instructions = "FRRFLLFFRRFLL" }; IPositionFinal positionFinal2 = service.GetFinalPostion(1, positionStarting2); Assert.AreEqual(3, positionFinal2.FinalXPosition); Assert.AreEqual(3, positionFinal2.FinalYPosition); Assert.AreEqual('N', positionFinal2.FinalOrientation); Assert.AreEqual(true, positionFinal2.Lost); IPositionStarting positionStarting3 = new PositionStarting { StartingXPosition = 0, StartingYPosition = 3, Orientation = 'W', Instructions = "LLFFFLFLFL" }; IPositionFinal positionFinal3 = service.GetFinalPostion(1, positionStarting3); Assert.AreEqual(2, positionFinal3.FinalXPosition); Assert.AreEqual(3, positionFinal3.FinalYPosition); Assert.AreEqual('S', positionFinal3.FinalOrientation); Assert.AreEqual(false, positionFinal3.Lost); }