public void CommandUpUpdatesAim() { var sub = new Submarine(); sub.Execute(new SubmarineCommand(Direction.Down, 1)); Assert.That(sub.Horizontal, Is.EqualTo(0)); Assert.That(sub.Aim, Is.EqualTo(1)); }
public void CommandForwardUpdatesHorizontalLocation() { var sub = new Submarine(); sub.Execute(new SubmarineCommand(Direction.Forward, 1)); Assert.That(sub.Horizontal, Is.EqualTo(1)); Assert.That(sub.Depth, Is.EqualTo(0)); }
public void CommandForwardUpdatesHorizontalLocationAndDepthWhenAimIsNotZero() { var sub = new Submarine { Aim = 1 }; sub.Execute(new SubmarineCommand(Direction.Forward, 1)); Assert.That(sub.Horizontal, Is.EqualTo(1)); Assert.That(sub.Depth, Is.EqualTo(1)); }
public async Task <int> Part1() { var commands = await _inputFetcher.GetTransformedSplitInputForDay(2, SubmarineCommandParser.Parse); var sub = new Submarine(); foreach (var command in commands) { sub.Execute(command); } return(sub.Horizontal * sub.Depth); }