public void ToDataTable_ThrowsIfNetworkIsIncorrectType(bool includeNodeAttribs) { INetwork net = new BlueSpider.Blob.TestSupport.Network.Dummies.DummyBasicAdjList(); BasicAdjListNodeDataExtractor xtor = new BasicAdjListNodeDataExtractor(); var ex = Assert.Throws<ArgumentException>(() => xtor.ToDataTable(net, includeNodeAttribs)); }
public void ToDataTable_ThrowsIfNetworkIsNull(bool includeNodeAttribs) { IBasicAdjList net = null; BasicAdjListNodeDataExtractor xtor = new BasicAdjListNodeDataExtractor(); var ex = Assert.Throws<ArgumentNullException>(() => xtor.ToDataTable(net, includeNodeAttribs)); }
public void ToDataTable_With_Zero_Node_Data_Attribs_And_IncludeNodeAttribs_Is_True_Verify_Index_Values_In_Output_Table(int numNodes, int numEdges, bool isDirected) { bool includeNodeAttribs = true; IBasicAdjList net = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(numNodes, numEdges, isDirected, true, false); var map = new Dictionary<int, bool>(); // map node index to bool flag to record when it is found foreach (var node in net.Nodes) { map.Add(node.Index, false); } var xtor = new BasicAdjListNodeDataExtractor(); DataTable table = xtor.ToDataTable(net, includeNodeAttribs); Assert.NotNull(table); Assert.Equal(1, table.Columns.Count); Assert.Equal(numNodes, table.Rows.Count); int val = -1; foreach (DataRow row in table.Rows) { val = Convert.ToInt32(row[0]); map[val] = true; // record when the node index is identified in the table } // make sure each node index was found foreach (KeyValuePair<int, bool> kvp in map) { Assert.True(kvp.Value, string.Format("Node index {0} was not found", kvp.Key)); } }
public void ToDataTable_With_Zero_Node_Data_Attribs_And_IncludeNodeAttribs_Is_True(int numNodes, int numEdges, bool isDirected) { bool includeNodeAttribs = true; IBasicAdjList net = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(numNodes, numEdges, isDirected, true, false); var xtor = new BasicAdjListNodeDataExtractor(); DataTable table = xtor.ToDataTable(net, includeNodeAttribs); Assert.NotNull(table); Assert.Equal(1, table.Columns.Count); Assert.Equal(numNodes, table.Rows.Count); }
public void ToDataTable_With_One_Node_Data_Attrib_And_IncludeNodeAttribs_Is_True(int numNodes, int numEdges, bool isDirected, int[] dataVals) { bool includeNodeAttribs = true; IBasicAdjList net = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(numNodes, numEdges, isDirected, true, false); var builder = new DataAttributesBuilder(); int colIndex = net.NodeData.AddColumn("col 0", typeof(int)); builder.PopulateCol<INode>(net.NodeData, colIndex, dataVals); var xtor = new BasicAdjListNodeDataExtractor(); DataTable table = xtor.ToDataTable(net, includeNodeAttribs); Assert.NotNull(table); Assert.Equal(1+1, table.Columns.Count); Assert.Equal(numNodes, table.Rows.Count); DataColumn col = table.Columns[0]; Assert.NotNull(col); Assert.Equal(typeof(int), col.DataType); col = table.Columns[1]; Assert.NotNull(col); Assert.Equal(typeof(int), col.DataType); string colName = table.Columns[1].ColumnName; object objVal = null; int val = -1; for (int i = 0; i < table.Rows.Count; i++) { objVal = table.Rows[i][colName]; Assert.NotNull(objVal); Assert.IsType(typeof(int), objVal); val = (int)objVal; Assert.Equal(dataVals[i], val); } }
public void ToDataTable_With_Multiple_Columns_And_IncludeNodeAttribs_Is_True(int testId, int numNodes, int numEdges, bool isDirected, int[] intVals, double[] doubleVals, bool[] boolVals, string[] stringVals) { bool includeNodeAttribs = true; IBasicAdjList net = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(numNodes, numEdges, isDirected, true, false); var builder = new DataAttributesBuilder(); int colIndex0 = net.NodeData.AddColumn("col 0", typeof(int)); int colIndex1 = net.NodeData.AddColumn("col 1", typeof(double)); int colIndex2 = net.NodeData.AddColumn("col 2", typeof(bool)); int colIndex3 = net.NodeData.AddColumn("col 3", typeof(string)); builder.PopulateCol<int, INode>(net.NodeData, colIndex0, intVals); builder.PopulateCol<double, INode>(net.NodeData, colIndex1, doubleVals); builder.PopulateCol<bool, INode>(net.NodeData, colIndex2, boolVals); builder.PopulateCol<string, INode>(net.NodeData, colIndex3, stringVals); var xtor = new BasicAdjListNodeDataExtractor(); DataTable table = xtor.ToDataTable(net, includeNodeAttribs); Assert.NotNull(table); Assert.Equal(4+1, table.Columns.Count); Assert.Equal(numNodes, table.Rows.Count); //-- DataColumn intCol = table.Columns[1]; Assert.NotNull(intCol); Assert.Equal(typeof(int), intCol.DataType); string intColName = intCol.ColumnName; //-- DataColumn doubleCol = table.Columns[2]; Assert.NotNull(doubleCol); Assert.Equal(typeof(double), doubleCol.DataType); string doubleColName = doubleCol.ColumnName; //-- DataColumn boolCol = table.Columns[3]; Assert.NotNull(boolCol); Assert.Equal(typeof(bool), boolCol.DataType); string boolColName = boolCol.ColumnName; //-- DataColumn stringCol = table.Columns[4]; Assert.NotNull(stringCol); Assert.Equal(typeof(string), stringCol.DataType); string stringColName = stringCol.ColumnName; object objVal = null; //-- ints int intVal = -1; for (int i = 0; i < table.Rows.Count; i++) { objVal = table.Rows[i][intColName]; Assert.NotNull(objVal); Assert.IsType(typeof(int), objVal); intVal = (int)objVal; Assert.Equal(intVals[i], intVal); } //-- doubles double doubleVal = -1.1; for (int i = 0; i < table.Rows.Count; i++) { objVal = table.Rows[i][doubleColName]; Assert.NotNull(objVal); Assert.IsType(typeof(double), objVal); doubleVal = (double)objVal; Assert.Equal(doubleVals[i], doubleVal); } //-- bools bool boolVal = false; for (int i = 0; i < table.Rows.Count; i++) { objVal = table.Rows[i][boolColName]; Assert.NotNull(objVal); Assert.IsType(typeof(bool), objVal); boolVal = (bool)objVal; Assert.Equal(boolVals[i], boolVal); } //-- strings string stringVal = null; for (int i = 0; i < table.Rows.Count; i++) { objVal = table.Rows[i][stringColName]; Assert.NotNull(objVal); Assert.IsType(typeof(string), objVal); stringVal = (string)objVal; Assert.Equal(stringVals[i], stringVal); } }
public void ToDataTable_ThrowsIfNodeAttribMgrIsNull(bool includeNodeAttribs) { BasicAdjList net = BasicAdjListGenerator.GenerateAdjList(0, 0, true) as BasicAdjList; net.NodeData = null; BasicAdjListNodeDataExtractor xtor = new BasicAdjListNodeDataExtractor(); var ex = Assert.Throws<ArgumentException>(() => xtor.ToDataTable(net, includeNodeAttribs)); }