public void TestApplySeatingPartTwo() { var state0 = LoadInput("input_2_state_0.txt"); var state1 = LoadInput("input_2_state_1.txt"); var state2 = LoadInput("input_2_state_2.txt"); var state3 = LoadInput("input_2_state_3.txt"); var state4 = LoadInput("input_2_state_4.txt"); var state5 = LoadInput("input_2_state_5.txt"); var state6 = LoadInput("input_2_state_6.txt"); var waitingArea = new WaitingArea(state0); waitingArea.State.ShouldBe(state0); waitingArea.ApplySeatingPartTwo(); // Round 1 waitingArea.State.ShouldBe(state1); waitingArea.ApplySeatingPartTwo(); // Round 2 waitingArea.State.ShouldBe(state2); waitingArea.ApplySeatingPartTwo(); // Round 3 waitingArea.State.ShouldBe(state3); waitingArea.ApplySeatingPartTwo(); // Round 4 waitingArea.State.ShouldBe(state4); waitingArea.ApplySeatingPartTwo(); // Round 5 waitingArea.State.ShouldBe(state5); waitingArea.ApplySeatingPartTwo(); // Round 6 waitingArea.State.ShouldBe(state6); waitingArea.ApplySeatingPartTwo(); // Round 7 (should be no change) waitingArea.State.ShouldBe(state6); waitingArea.SeatsTaken.ShouldBe(26); }