Example #1
0
        public void CalculatesRandom()
        {
            List <Tuple <int, int> > cities = new List <Tuple <int, int> >();

            cities.Add(new Tuple <int, int>(1, 2));
            cities.Add(new Tuple <int, int>(1, 3));

            var rand = new Random();

            for (int i = 1; i <= largeTestCount / 10; ++i)
            {
                var currentCity     = rand.Next(largeTestCount);
                var citiesToConnect = rand.Next(largeTestCount / 10);
                for (int j = 0; j < citiesToConnect; ++j)
                {
                    cities.Add(new Tuple <int, int>(currentCity, rand.Next(largeTestCount)));
                }
            }

            var sut = new MaximalTourism(cities);

            var result = sut.FindMaximumConnectedCities();

            Assert.IsTrue(result > 2);
        }
Example #2
0
        public void UsesSampleInput(string fileName, int expectedREsult)
        {
            var filePath = Path.Combine(TestContext.CurrentContext.TestDirectory, fileName);

            var allText = File.ReadAllText(filePath).Split(Environment.NewLine);

            string[] tokens_n = allText.First().Split(' ');
            int      n        = Convert.ToInt32(tokens_n[0]);
            int      m        = Convert.ToInt32(tokens_n[1]);

            int[][] route = new int[allText.Length - 1][];

            var index = 0;

            foreach (var line in allText.Skip(1))
            {
                string[] route_temp = line.Split(' ');
                route[index] = Array.ConvertAll(route_temp, Int32.Parse);
                index++;
            }

            var sut = new MaximalTourism(route);

            var result = sut.FindMaximumConnectedCities();

            Assert.AreEqual(expectedREsult, result);
        }
Example #3
0
        public void CalculatesValidExamples(string inputStr, int expectedMaxCities)
        {
            var sut = new MaximalTourism(inputStr.Split("|"));

            var result = sut.FindMaximumConnectedCities();

            Assert.AreEqual(expectedMaxCities, result);
        }
Example #4
0
        public void CalculatesAllConnectedDownwards()
        {
            List <Tuple <int, int> > cities = new List <Tuple <int, int> >();

            for (int i = largeTestCount; i > 0; --i)
            {
                cities.Add(new Tuple <int, int>(i, i + 1));
            }

            cities.Add(new Tuple <int, int>(largeTestCount + 2, largeTestCount + 3));

            var sut = new MaximalTourism(cities);

            var result = sut.FindMaximumConnectedCities();

            Assert.AreEqual(largeTestCount + 1, result);
        }
Example #5
0
        public void CalculatesWithAllDisjoint()
        {
            List <Tuple <int, int> > cities = new List <Tuple <int, int> >();

            for (int i = 1; i <= largeTestCount; ++i)
            {
                cities.Add(new Tuple <int, int>(i, i));
            }

            cities.Add(new Tuple <int, int>(largeTestCount + 1, largeTestCount + 2));

            var sut = new MaximalTourism(cities);

            var result = sut.FindMaximumConnectedCities();

            Assert.AreEqual(2, result);
        }