public void Test03()
            {
                const int numberOfVerteces = 4;
                var       graph            =
                    new GraphBuilder(numberOfVertices: numberOfVerteces, isDirected: false)
                    .AddEdge(0, 1, 1)
                    .AddEdge(0, 2, 2)
                    .AddEdge(0, 3, 17)
                    .AddEdge(1, 2, 5)
                    .AddEdge(2, 3, 4)
                    .ToGraph();
                const int startingVertex = 2;

                var result = BellmanFordAlgorithm.ShortestPaths(new GraphWithTracking(graph), startingVertex);

                result.Count.Should().Be(numberOfVerteces);
                result.ShouldBeEquivalentTo(new[] { 2, 3, 0, 4 });
            }
            public void Test01()
            {
                var numberOfVerteces = 5;
                var graph            =
                    new GraphBuilder(numberOfVertices: numberOfVerteces, isDirected: true)
                    .AddEdge(3, 0, 7)
                    .AddEdge(3, 4, 6)
                    .AddEdge(2, 3, 2)
                    .AddEdge(0, 2, 9)
                    .AddEdge(0, 1, -3)
                    .AddEdge(4, 0, 8)
                    .AddEdge(2, 1, 7)
                    .AddEdge(1, 4, -2)
                    .AddEdge(4, 2, -4)
                    .ToGraph();
                var startingVertex = 3;

                var result = BellmanFordAlgorithm.ShortestPaths(new GraphWithTracking(graph), startingVertex);

                result.Count.Should().Be(numberOfVerteces);
                result.ShouldBeEquivalentTo(new[] { 7, 4, -2, 0, 2 });
            }