public void ThrowException_WhenAskingForAnAmphipodThatIsNotThere()
        {
            var sut       = new AmphipodSorter(SAMPLE_MAP);
            var exception = Assert.Throws <ArgumentException>(() => sut.GetAmphipodAt(0, 0));

            Assert.Equal("No amphipod there", exception.Message);
        }
        public void MakeAmphipodMoveNorthThenWestThrice()
        {
            var sut = new AmphipodSorter(SAMPLE_MAP);

            sut.MoveAmphipodFrom(7, 2).To(7, 1).To(6, 1).To(5, 1).To(4, 1);
            Assert.Equal((4, 1, 10, 'B'), sut.GetAmphipodAt(4, 1));
            Assert.Equal(40, sut.TotalCost);
        }
        public void MakeAmphipodMoveNorth()
        {
            var sut = new AmphipodSorter(SAMPLE_MAP);

            sut.MoveAmphipodFrom(7, 2).To(7, 1);
            Assert.Equal((7, 1, 10, 'B'), sut.GetAmphipodAt(7, 1));
            Assert.Equal(10, sut.TotalCost);
        }
        public void IndividualizeEveryAmphipod()
        {
            var sut = new AmphipodSorter(SAMPLE_MAP);

            Assert.Equal((3, 3, 1, 'A'), sut.GetAmphipodAt(3, 3));
        }
        public void LoadMapCorrectly(string map)
        {
            var sut = new AmphipodSorter(map);

            Assert.Equal(map, sut.ToString());
        }