public void Test()
        {
            var one   = new FWVertex(1);
            var two   = new FWVertex(2);
            var three = new FWVertex(3);
            var four  = new FWVertex(4);

            Edge[][] matrix = new Edge[4][];
            for (int i = 0; i < matrix.Length; i++)
            {
                matrix[i] = new Edge[4];
            }

            // 1 ->
            matrix[0][0] = new Edge(0);
            matrix[0][1] = new Edge(3);
            matrix[0][2] = new Edge();
            matrix[0][3] = new Edge(7);

            // 2 ->
            matrix[1][0] = new Edge(8);
            matrix[1][1] = new Edge(0);
            matrix[1][2] = new Edge(2);
            matrix[1][3] = new Edge();

            // 3 ->
            matrix[2][0] = new Edge(5);
            matrix[2][1] = new Edge();
            matrix[2][2] = new Edge(0);
            matrix[2][3] = new Edge(1);

            // 4 ->
            matrix[3][0] = new Edge(2);
            matrix[3][1] = new Edge();
            matrix[3][2] = new Edge();
            matrix[3][3] = new Edge(0);

            int n = 4;

            int[][] result = fw.FindAllPairs(matrix, n);
            Print(result, n);
        }
 public Edge(int cost, FWVertex vertex)
 {
     Cost   = cost;
     Vertex = vertex;
 }