public async Task Part1_DetailedExample() { // Arrange var outputs = new List <(long, long)>() { (1, 0), // ..... // ..... // .<#.. // ..... // ..... (0, 0), // ..... // ..... // ..#.. // .v... // ..... (1, 0), (1, 0), // ..... // ..... // ..^.. // .##.. // ..... (0, 1), (1, 0), (1, 0), // ..... // ..<#. // ...#. // .##.. // ..... }; var program = new Mock <IIntcodeProgram>(); program.Setup(p => p.RunAsync(It.IsAny <Channel <long> >(), It.IsAny <Channel <long> >())) .Returns <Channel <long>, Channel <long> >(async(i, o) => { foreach (var output in outputs) { await i.Reader.ReadAsync(); await o.Writer.WriteAsync(output.Item1); await o.Writer.WriteAsync(output.Item2); } o.Writer.Complete(); }); var subject = new SpacePolice(new NullLogger <SpacePolice>(), new IntcodeProgram(NullLogger <IntcodeProgram> .Instance)); // Act var result = (await subject.GetPaintedPanelsAsync(program.Object, PaintedColor.Black)).Count; // Assert Assert.Equal(6, result); }
public void TestDay11Part1() { var spacePolice = new SpacePolice(_computer); var output = spacePolice.Run(); Assert.AreEqual(1709, output); }
public async Task Part1_ConctereExcercise() { // Arrange var subject = new SpacePolice(new NullLogger <SpacePolice>(), new IntcodeProgram(NullLogger <IntcodeProgram> .Instance)); var input = "3,8,1005,8,310,1106,0,11,0,0,0,104,1,104,0,3,8,102,-1,8,10,1001,10,1,10,4,10,108,1,8,10,4,10,1002,8,1,28,1,105,11,10,3,8,102,-1,8,10,1001,10,1,10,4,10,1008,8,0,10,4,10,102,1,8,55,3,8,102,-1,8,10,1001,10,1,10,4,10,108,0,8,10,4,10,1001,8,0,76,3,8,1002,8,-1,10,101,1,10,10,4,10,108,0,8,10,4,10,102,1,8,98,1,1004,7,10,1006,0,60,3,8,102,-1,8,10,1001,10,1,10,4,10,108,0,8,10,4,10,1002,8,1,127,2,1102,4,10,1,1108,7,10,2,1102,4,10,2,101,18,10,3,8,1002,8,-1,10,1001,10,1,10,4,10,1008,8,0,10,4,10,102,1,8,166,1006,0,28,3,8,1002,8,-1,10,101,1,10,10,4,10,108,1,8,10,4,10,101,0,8,190,1006,0,91,1,1108,5,10,3,8,1002,8,-1,10,101,1,10,10,4,10,1008,8,1,10,4,10,1002,8,1,220,1,1009,14,10,2,1103,19,10,2,1102,9,10,2,1007,4,10,3,8,1002,8,-1,10,101,1,10,10,4,10,1008,8,1,10,4,10,101,0,8,258,2,3,0,10,1006,0,4,3,8,102,-1,8,10,1001,10,1,10,4,10,108,1,8,10,4,10,1001,8,0,286,1006,0,82,101,1,9,9,1007,9,1057,10,1005,10,15,99,109,632,104,0,104,1,21102,1,838479487636,1,21102,327,1,0,1106,0,431,21102,1,932813579156,1,21102,1,338,0,1106,0,431,3,10,104,0,104,1,3,10,104,0,104,0,3,10,104,0,104,1,3,10,104,0,104,1,3,10,104,0,104,0,3,10,104,0,104,1,21101,0,179318033447,1,21101,385,0,0,1105,1,431,21101,248037678275,0,1,21101,0,396,0,1105,1,431,3,10,104,0,104,0,3,10,104,0,104,0,21101,0,709496558348,1,21102,419,1,0,1105,1,431,21101,825544561408,0,1,21101,0,430,0,1106,0,431,99,109,2,22101,0,-1,1,21101,40,0,2,21102,462,1,3,21101,0,452,0,1106,0,495,109,-2,2105,1,0,0,1,0,0,1,109,2,3,10,204,-1,1001,457,458,473,4,0,1001,457,1,457,108,4,457,10,1006,10,489,1101,0,0,457,109,-2,2106,0,0,0,109,4,2101,0,-1,494,1207,-3,0,10,1006,10,512,21101,0,0,-3,22101,0,-3,1,22101,0,-2,2,21101,1,0,3,21102,531,1,0,1105,1,536,109,-4,2105,1,0,109,5,1207,-3,1,10,1006,10,559,2207,-4,-2,10,1006,10,559,22101,0,-4,-4,1106,0,627,21202,-4,1,1,21201,-3,-1,2,21202,-2,2,3,21102,578,1,0,1105,1,536,22101,0,1,-4,21101,1,0,-1,2207,-4,-2,10,1006,10,597,21102,0,1,-1,22202,-2,-1,-2,2107,0,-3,10,1006,10,619,21201,-1,0,1,21102,1,619,0,105,1,494,21202,-2,-1,-2,22201,-4,-2,-4,109,-5,2106,0,0"; // Act var result = await subject.SolvePart1Async(input.ToMemoryStream()); // Assert Assert.Equal("2088", result); }
public void TestListGet() { var nodes = new List <Node>(); var node1 = new Node(1, 2); nodes.Add(node1); var node2 = new Node(1, 2); var output = SpacePolice.FindNode(nodes, node2); Assert.AreEqual(node1, output); }
public void TestDay11Part2() { var spacePolice = new SpacePolice(_computer); var node = new Node(0, 0) { IsWhite = true }; spacePolice.Nodes.Add(node); spacePolice.Core(); spacePolice.DisplayNode(); }