public void ConvertToFrame_From_Directed_Matrix_Random_Tests(int nodeCount, int edgeCount, bool directed, bool selfLoops)
        {
            Console.WriteLine(
                string.Format("nodes: {0}, edges:{1}, directed:{2}, self-loops:{3}",
                     nodeCount, edgeCount, directed, selfLoops));
            //Arrange
            BasicMatrixGenerator.AllowSelfLoops = selfLoops;
            IMatrix<double> net = BasicMatrixGenerator.GenerateMatrix(Guid.NewGuid(), nodeCount, edgeCount, directed);

            var converter = new MatrixToFrameConverter();

            //Act
            IFrame frame = converter.ConvertToFrame(net) as IFrame;

            //Assert
            Assert.NotNull(frame);
            Assert.Equal(net.NodeCount, frame.RowCount);
            Assert.Equal(net.NodeCount, frame.ColumnCount);

            double initVal = 0.0;
            double copiedVal = 0.0;
            for (int i = 0; i < frame.RowCount; i++)
            {
                for (int j = 0; j < frame.ColumnCount; j++)
                {
                    initVal = net[i, j];
                    copiedVal = (double)frame[i,j];
                    Assert.Equal(initVal, copiedVal);
                    j++;
                }
            }
        }
        public void ConvertToFrame_From_Directed_Matrix(int testId, bool directed, double[] row0, double[] row1, double[] row2)
        {
            //Arrange
            int nodeCount = row0.Length;
            BasicMatrixGenerator.AllowSelfLoops = true;
            IMatrix<double> net = BasicMatrixGenerator.GenerateMatrix(Guid.NewGuid(), nodeCount, 0, directed);

            for (int i = 0; i < nodeCount; i++)
            {
                if (i == 0)
                    for (int j = 0; j < nodeCount; j++)
                        net[i, j] = row0[j];
                else if (i == 1)
                    for (int j = 0; j < nodeCount; j++)
                        net[i, j] = row1[j];
                else
                    for (int j = 0; j < nodeCount; j++)
                        net[i, j] = row2[j];
            }

            var converter = new MatrixToFrameConverter();

            //Act
            IFrame frame = converter.ConvertToFrame(net) as IFrame;

            //Assert
            Assert.NotNull(frame);
            Assert.Equal(net.NodeCount, frame.RowCount);
            Assert.Equal(net.NodeCount, frame.ColumnCount);

            double initVal = 0.0;
            double copiedVal = 0.0;

            for (int i = 0; i < frame.RowCount; i++)
            {
                for (int j = 0; j < frame.ColumnCount; j++ )
                {
                    initVal = net[i, j];
                    copiedVal = (double)frame[i,j];
                    Assert.Equal(initVal, copiedVal);
                    j++;
                }
            }
        }