public void CalculateShortestPathTest()
        {
            foreach (var testNodesAndResult in ShortestPathCalculatorTestUtils.GetTestNodesAndResults())
            {
                var sourceAndTarget = testNodesAndResult.Item1;
                var possibleResults = testNodesAndResult.Item2;

                var result = _spc.CalculateShortestPath(sourceAndTarget.Item1, sourceAndTarget.Item2);
                if (possibleResults == null)
                {
                    Assert.IsNull(result);
                }
                else
                {
                    Assert.IsNotNull(result);
                    var oneOfPossileResultsIsOK = false;
                    foreach (var possibleResult in possibleResults)
                    {
                        if (possibleResult.SequenceEqual(result))
                        {
                            oneOfPossileResultsIsOK = true;
                            break;
                        }
                    }

                    Assert.IsTrue(oneOfPossileResultsIsOK);
                }
            }
        }
        public void Init()
        {
            _spc = new QuickGraphShortestPathCalculator();
            var links = ShortestPathCalculatorTestUtils.GetLinks();

            _spc.Init(links.Select(l => new Tuple <int, int>(l.Item1, l.Item2)));
        }