public void SelectMinesOnTube()
        {
            var map        = MapLoader.LoadMapByNameInTests("tube.json").Map;
            var desiredLen = 12;
            var path       = new PathSelector(map, new MineDistCalculator(new Graph(map)), desiredLen).SelectPath();

            Assert.AreEqual(desiredLen + 1, path.Count);
            path.Should().Contain(new[] { 285, 260, 148, 64 });
        }
        public void SelectMines()
        {
            var map        = MapLoader.LoadMapByNameInTests("tube.json").Map;
            var desiredLen = 15;
            var graph      = new Graph(map);
            var minDists   = new MineDistCalculator(graph);
            var path       = new PathSelector(map, minDists, desiredLen).SelectPath();
            var positioner = new FuturesPositioner(map, graph, path, minDists);
            var futures    = positioner.GetFutures();

            map.ShowWithPath(path, futures);
        }