private static void CalcTSP(string filePath)
        {
            var lines = File.ReadAllLines(filePath);
            int verticesCount = int.Parse(lines[0].Split(' ').First());
            var input = new List<Tuple<float, float>>(verticesCount);
            foreach (var line in lines.Skip(1))
            {
                var node = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                input.Add(new Tuple<float, float>(float.Parse(node.First()), float.Parse(node.Skip(1).First())));
            }

            var tsp = new TSPAlg();

            Console.WriteLine("tsp: {0}", tsp.CalcMinCostTour(input.ToArray()));
        }
        public void TestCase1()
        {
            var input = new[]
                {
                    new Tuple<float, float>(38.24f, 20.42f),
                    new Tuple<float, float>(39.57f, 26.15f),
                    new Tuple<float, float>(40.56f, 25.32f),
                    new Tuple<float, float>(36.26f, 23.12f),
                    new Tuple<float, float>(33.48f, 10.54f),
                    new Tuple<float, float>(37.56f, 12.19f),
                    new Tuple<float, float>(38.42f, 13.11f),
                    new Tuple<float, float>(37.52f, 20.44f),
                };

            var alg = new TSPAlg();
            Assert.AreEqual(37, alg.CalcMinCostTour(input));
        }