public void NodeDataAttributeCount_With_DataAttributes(int nodeCount, bool enableNodeData, bool enableEdgeData, int expectedLength, Type[] dataTypes) { var fac = new BasicAdjListFactory(); fac.EnableNodeDataAttributes = enableNodeData; fac.EnableEdgeDataAttributes = enableEdgeData; var net = fac.CreateNetwork(Guid.Empty, 0) as IBasicAdjList; // add cols to node data attribs var netNodeData = net as INodeAttributes; for(int i=0; i<expectedLength;i++) { netNodeData.NodeData.AddColumn(string.Format("col_{0}", i), dataTypes[i]); } Assert.Equal(0, net.NodeCount); if (enableNodeData) Assert.Equal(expectedLength, net.NodeDataAttributeCount); else Assert.Equal(0, net.NodeDataAttributeCount); INode nodeA = null; for(int i=0; i<nodeCount;i++) nodeA = net.CreateNode(); Assert.Equal(nodeCount, net.NodeCount); if (enableNodeData) Assert.Equal(expectedLength, net.NodeDataAttributeCount); else Assert.Equal(0, net.NodeDataAttributeCount); }
public void NodeDataAttributeCount_With_0_DataAttributes(int nodeCount, bool enableNodeData, bool enableEdgeData) { var fac = new BasicAdjListFactory(); fac.EnableNodeDataAttributes = enableNodeData; fac.EnableEdgeDataAttributes = enableEdgeData; var net = fac.CreateNetwork(Guid.Empty, nodeCount) as IBasicAdjList; Assert.Equal(nodeCount, net.NodeCount); if (enableNodeData) Assert.Equal(nodeCount, net.NodeDataAttributeCount); else Assert.Equal(0, net.NodeDataAttributeCount); }
public void CreateNetwork(int nodeCount, bool isDirected) { Type expectedType = typeof(BasicAdjList); BasicAdjListFactory fac = new BasicAdjListFactory(); fac.IsDirected = isDirected; var net = fac.CreateNetwork(Guid.Empty, nodeCount) as IBasicAdjList; Assert.NotNull(net); Assert.IsType(expectedType, net); Assert.Equal(nodeCount, net.NodeCount); Assert.Equal(isDirected, net.IsDirected); Assert.Null(net.NodeData); Assert.Null(net.EdgeData); }
public void CreateNetwork_Fires_ProgressCompleted_Event() { //Arrange int nodeCount = 1037; Blob.TestSupport.ProgressEventHandlerHelper progressEventHandlerHelper = new Blob.TestSupport.ProgressEventHandlerHelper(); BasicAdjListFactory fac = new BasicAdjListFactory(); fac.ProgressCompleted += new ProgressCompletedEventHandler<IUpdateProgress, ProgressCompletedEventArgs>(progressEventHandlerHelper.NetObjFac_ProgressCompletedEventHandler); //Act fac.CreateNetwork(Guid.Empty, nodeCount); //Assert Assert.True(progressEventHandlerHelper.IsCompleted); }
/// <summary> /// Parses a particular string format to a network. Format is /// "n,e,d|pair;pair;pair" where n = node count, e = edge count, d = true/false for directedness and /// pair is a number pair of node indices indicating an edges. Ex: "5,3,false|0,1;1,2;3,5" *note that the /// number of pairs should match the number of edges /// </summary> public static IBasicAdjList ParseToNetwork(string input, bool enableNodeData, bool enableEdgeData) { // n,e,directed|pair; // 7,23,false|0,3;0,2;0,4;1,4;1,2;1,3;2,5;2,4;2,4;3,5;3,1;3,6;3,0;4,4;4,5;4,3;5,1;5,1;5,4;5,6;5,0;6,3;6,1; IBasicAdjList network = null; var split1 = input.Split(new[] {'|'}); var split2 = split1[0].Split(new[] { ',' }); int n = int.Parse(split2[0]); int m = int.Parse(split2[1]); bool directed = bool.Parse(split2[2]); var split3 = split1[1].Split(new[] { ';' }); // pairs if(split3.Length != m) throw new ArgumentException(string.Format("The number of pairs {0} did not match the number of edges {1} in {2}", split3.Length, m, input)); INode a = null; INode b = null; using (var fac = new BasicAdjListFactory()) { network = new BasicAdjList(Guid.NewGuid(), directed); for(int i=0; i<n; i++) network.CreateNode(); } string[] pair = null; int indexA = -1; int indexB = -1; for (int i = 0; i < split3.Length; i++ ) { pair = split3[i].Split(new[] { ',' }); indexA = int.Parse(pair[0]); indexB = int.Parse(pair[1]); a = network.Nodes[indexA]; b = network.Nodes[indexB]; network.CreateEdge(a, b); } using (var fac = new DataAttributeTableFactory(network)) { if (enableNodeData) fac.CreateNodeDataTable(); if (enableEdgeData) fac.CreateEdgeDataTable(); } return network; }
public void CreateNetwork_Fires_ProgressEvents() { // Raising an event on the mock // mock.Raise(m => m.FooEvent += null, new FooEventArgs(fooValue)); int nodeCount = 13; Blob.TestSupport.ProgressEventHandlerHelper progressEventHandlerHelper = new Blob.TestSupport.ProgressEventHandlerHelper(); BasicAdjListFactory fac = new BasicAdjListFactory(); fac.ProgressChanged += new ProgressEventHandler<IUpdateProgress, ProgressEventArgs>(progressEventHandlerHelper.NetObjFac_ProgressEventHandler); //Act fac.CreateNetwork(Guid.Empty, nodeCount); //Assert Assert.True(progressEventHandlerHelper.ProgressCtr > 1); }
public void CreateNetwork_With_DataAttributes(int nodeCount, bool enableNodeData, bool enableEdgeData) { Type expectedType = typeof(BasicAdjList); BasicAdjListFactory fac = new BasicAdjListFactory(); fac.EnableNodeDataAttributes = enableNodeData; fac.EnableEdgeDataAttributes = enableEdgeData; var net = fac.CreateNetwork(Guid.Empty, nodeCount) as IBasicAdjList; Assert.NotNull(net); Assert.IsType(expectedType, net); Assert.Equal(nodeCount, net.NodeCount); if (enableNodeData) Assert.NotNull(net.NodeData); else Assert.Null(net.NodeData); if (enableEdgeData) Assert.NotNull(net.EdgeData); else Assert.Null(net.EdgeData); }
public void CreateNetwork_With_IsDirected_Param_Fires_ProgressEvents(bool isDirected) { //Arrange int nodeCount = 1037; Blob.TestSupport.ProgressEventHandlerHelper progressEventHandlerHelper = new Blob.TestSupport.ProgressEventHandlerHelper(); BasicAdjListFactory fac = new BasicAdjListFactory(); fac.IsDirected = isDirected; fac.ProgressChanged += new ProgressEventHandler<IUpdateProgress, ProgressEventArgs>(progressEventHandlerHelper.NetObjFac_ProgressEventHandler); //Act fac.CreateNetwork(Guid.Empty, nodeCount); //Assert int result = progressEventHandlerHelper.ProgressCtr; Assert.True(progressEventHandlerHelper.ProgressCtr > 0); }