public void HowFar_IsCorrect_After2Turns(string first, string second) { var gps = new Gps(); gps.Move(new Turn(first)); gps.Move(new Turn(second)); Assert.Equal(4, gps.HowFar()); }
public void HowFar_IsCorrect_After3Turns_WithALoopback() { var gps = new Gps(); gps.Move(new Turn("R2")); gps.Move(new Turn("R2")); gps.Move(new Turn("R2")); Assert.Equal(2, gps.HowFar()); }
public void HowFarIsFirstDuplicate_IsCorrect() { var gps = new Gps(); gps.Move(new Turn("R8")); gps.Move(new Turn("R4")); gps.Move(new Turn("R4")); gps.Move(new Turn("R8")); Assert.Equal(4, gps.HowFarIsFirstDuplicate()); }
public void HowFar_IsCorrect_AfterCombinationTurns() { var gps = new Gps(); gps.Move(new Turn("R5")); gps.Move(new Turn("L5")); gps.Move(new Turn("R5")); gps.Move(new Turn("R3")); Assert.Equal(12, gps.HowFar()); }
public void HowFar_IsEqualToBlocks_AfterOneMove(string direction, int blocks) { var turn = new Turn(direction, blocks); var gps = new Gps(); gps.Move(turn); Assert.Equal(blocks, gps.HowFar()); }
public void CoordinatesMovedThrough_ContainsCorrectListOfCoordinatesInOrder(Coordinate[] expected, Turn[] turns) { var gps = new Gps(); foreach (var turn in turns) { gps.Move(turn); } Assert.Equal(expected, gps.CoordinatesMovedThrough()); }
public static void Problem1() { var turns = TurnReader.FromFile("P1.txt").ToArray(); var gps = new Gps(); foreach (var turn in turns) { gps.Move(turn); } Console.WriteLine("How far away is first duplicate? {0}", gps.HowFarIsFirstDuplicate()); }