public void SolveFirstPuzzle()
        {
            var sut = new OctopusCaveSimulation(REAL_CAVE);

            sut.Step(100);
            Assert.Equal(1717, sut.FlashCount);
        }
        public void CountFlashesCorrectly(int steps, int expectedFlashes)
        {
            var sut = new OctopusCaveSimulation(SAMPLE_CAVE);

            sut.Step(steps);
            Assert.Equal(expectedFlashes, sut.FlashCount);
        }
        public void ExecuteStepsCorrectly_WhenUsingSampleMap(int steps, string expectedMap)
        {
            var sut = new OctopusCaveSimulation(SAMPLE_CAVE);

            sut.Step(steps);
            Assert.Equal(expectedMap, sut.GetMap());
        }
        public void ExecuteStepsCorrectly(int steps, string expectedMap)
        {
            const string map = "11111\n19991\n19191\n19991\n11111";

            var sut = new OctopusCaveSimulation(map);

            sut.Step(steps);
            Assert.Equal(expectedMap, sut.GetMap());
        }
        public void SolveSecondPuzzle()
        {
            var sut = new OctopusCaveSimulation(REAL_CAVE);

            Assert.Equal(476, sut.GetFirstSyncFlashStep());
        }
        public void FindFirstSynchronizedFlash_WhenUsingSampleData()
        {
            var sut = new OctopusCaveSimulation(SAMPLE_CAVE);

            Assert.Equal(195, sut.GetFirstSyncFlashStep());
        }
        public void LoadsInputCorrectly(int x, int y, int expectedPower)
        {
            var sut = new OctopusCaveSimulation(SAMPLE_CAVE);

            Assert.Equal(expectedPower, sut.GetOctopusEnergyLevelAt(x, y));
        }