public void GetCopy_For_Edges_Returns_IFrame(int testId, int numNodes, int numEdges, bool isDirected, bool selfLoops, bool multiEdges, int[] intVals, double[] doubleVals, bool[] boolVals, string[] stringVals) { //Arrange var copier = new DataAttributesTableToTableWithIndicesCopier<IEdge>(); #region Create src and target networks IBasicAdjList src = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(numNodes, numEdges, isDirected, false, true); var builder = new DataAttributesBuilder(); var colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(int)); builder.PopulateCol<int, IEdge>(src.EdgeData, colIndex, intVals); colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(double)); builder.PopulateCol<double, IEdge>(src.EdgeData, colIndex, doubleVals); colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(bool)); builder.PopulateCol<bool, IEdge>(src.EdgeData, colIndex, boolVals); colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(string)); builder.PopulateCol<string, IEdge>(src.EdgeData, colIndex, stringVals); #endregion //Act var results = copier.GetCopy(src.EdgeData); //Assert Assert.NotNull(results); var isIFrame = results is IFrame; Assert.True(isIFrame); }
public void GetCopy_For_Edges(int testId, int numNodes, int numEdges, bool isDirected, bool selfLoops, bool multiEdges, int[] intVals, double[] doubleVals, bool[] boolVals, string[] stringVals) { //Arrange var copier = new DataAttributesTableToTableWithIndicesCopier<IEdge>(); #region Create src and target networks IBasicAdjList src = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(numNodes, numEdges, isDirected, false, true); var builder = new DataAttributesBuilder(); var colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(int)); builder.PopulateCol<int, IEdge>(src.EdgeData, colIndex, intVals); colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(double)); builder.PopulateCol<double, IEdge>(src.EdgeData, colIndex, doubleVals); colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(bool)); builder.PopulateCol<bool, IEdge>(src.EdgeData, colIndex, boolVals); colIndex = builder.AddColumn((IEdgeAttributes)src, typeof(string)); builder.PopulateCol<string, IEdge>(src.EdgeData, colIndex, stringVals); #endregion //Act var results = copier.GetCopy(src.EdgeData ); //Assert Assert.NotNull(results); Assert.Equal(src.EdgeAttributeCount + 1, results.Columns.Count); Assert.Equal(src.EdgeCount, results.Rows.Count); Assert.Equal(typeof(int), results.Columns[0].DataType); for (int i = 0; i < src.EdgeDataAttributeCount; i++) { Assert.Equal(src.EdgeDataAttributeTypes[i], results.Columns[i + 1].DataType); Assert.Equal(src.EdgeDataAttributeNames[i], results.Columns[i + 1].ColumnName); } int index = -1; foreach (var edge in src.Edges) { index = edge.Index; for (int j = 0; j < src.EdgeDataAttributeCount; j++) { Assert.Equal(src.EdgeData[index, j ], results.Rows[index][j + 1]); } } }
public void GetCopy_For_Nodes_Throws_If_srcAttribs_Is_Null() { //Arrange var copier = new DataAttributesTableToTableWithIndicesCopier<INode>(); IDataAttributes<INode> attribs = null; //Act, Assert var ex = Assert.Throws<ArgumentNullException>(() => copier.GetCopy(attribs)); }