public void SortCitiesPairs_CorrectInput_ShouldSuccess()
        {
            //Arrange
            var manager = new TravelAssistantService();

            var input = new[] {
                new TaCitiesPair("Москва", "Париж"),
                new TaCitiesPair("Берлин", "Мельбурн"),
                new TaCitiesPair("Кельн", "Москва"),
                new TaCitiesPair("Мельбурн", "Кельн"),
            };

            var expectedResult = new[] {
                new TaCitiesPair("Берлин", "Мельбурн"),
                new TaCitiesPair("Мельбурн", "Кельн"),
                new TaCitiesPair("Кельн", "Москва"),
                new TaCitiesPair("Москва", "Париж"),
            };

            //Act
            manager.SortCitiesPairs(input);

            //Assert
            Assert.That(expectedResult, Is.EqualTo(input));
        }
示例#2
0
        static void Main(string[] args)
        {
            // данный проект использовался для отладки алгоритма

            var manager = new TravelAssistantService();

            var referenceResult = new[] {
                new TaCitiesPair("Берлин", "Мельбурн"),
                new TaCitiesPair("Мельбурн", "Кельн"),
                new TaCitiesPair("Кельн", "Москва"),
                new TaCitiesPair("Москва", "Париж"),
            };

            var referenceInput = new[] {
                new TaCitiesPair("Кельн", "Москва"),
                new TaCitiesPair("Мельбурн", "Кельн"),
                new TaCitiesPair("Москва", "Париж"),
                new TaCitiesPair("Берлин", "Мельбурн"),
            };

            var debugSample = new[] {
                new TaCitiesPair("Берлин", "Кельн"),
                new TaCitiesPair("Мельбурн", "Кельн"),
                new TaCitiesPair("Москва", "Париж"),
                new TaCitiesPair("Кельн", "Москва"),
            };

            manager.SortCitiesPairs(debugSample);
        }
        public void SortCitiesPairs_InputWithMultipleChains_ShouldThrowTaManyHeadsException()
        {
            //Arrange
            var manager = new TravelAssistantService();

            var input = new[] {
                new TaCitiesPair("Берлин", "Мельбурн"),
                new TaCitiesPair("Мельбурн", "Кельн"),
                new TaCitiesPair("Москва", "Париж"),
            };

            //Act
            //Assert
            Assert.Throws <TaManyHeadsException>(() => manager.SortCitiesPairs(input));
        }
        public void SortCitiesPairs_InputWithRepetitionsOfCities_ShouldThrowTaAddingDuplicateException3()
        {
            //Arrange
            var manager = new TravelAssistantService();

            var input = new[] {
                new TaCitiesPair("Берлин", "Мельбурн"),
                new TaCitiesPair("Мельбурн", "Кельн"),
                new TaCitiesPair("Кельн", "Мельбурн"),
                new TaCitiesPair("Москва", "Париж"),
            };

            //Act
            //Assert
            Assert.Throws <TaAddingDuplicateException>(() => manager.SortCitiesPairs(input));
        }
        public void SortCitiesPairs_InputWithClosedChain_ShouldThrowTaCircularReferenceException()
        {
            //Arrange
            var manager = new TravelAssistantService();

            var input = new[] {
                new TaCitiesPair("Париж", "Мельбурн"),
                new TaCitiesPair("Мельбурн", "Кельн"),
                new TaCitiesPair("Москва", "Париж"),
                new TaCitiesPair("Кельн", "Москва"),
            };

            //Act
            //Assert
            Assert.Throws <TaCircularReferenceException>(() => manager.SortCitiesPairs(input));
        }