Example #1
0
        public void ReadVertex_Reads_Vertex_From_Input_And_Maps_Vertex_Label(string inputStr, int expectedVertexNum, string expectedLabel)
        {
            // if no label or empty string specified, then no label is mapped

            //Arrange
            NetFileReader reader = new NetFileReader();
            reader.KeepNodeLabels = true;
            reader.NetworkAdjList = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(0, 0, false, true, true);

            var nodeAttribNet = (INodeAttributes)reader.NetworkAdjList;
            int colIndex = nodeAttribNet.NodeData.AddColumn("Node labels", typeof(string), "");
            reader.NodeLabelAttribColIndex = 0;

            reader.NetworkAdjList.CreateNode(); // create the node AFTER the data col is added.

            //Act
            reader.ReadVertex(inputStr);

            //Assert
            Assert.Equal(1, reader.Network.NodeCount);

            int mappedIndex = reader.VertexNumberMap[expectedVertexNum];

            INode node = reader.NetworkAdjList.Nodes[mappedIndex];
            string mappedLabel = ((INodeAttributes)reader.NetworkAdjList).NodeData.GetValue<string>(node, 0);

            Assert.Equal(expectedLabel, mappedLabel);
        }
Example #2
0
        public void ReadVertex_Reads_Vertex_From_Input_But_Vertex_Labels_Are_Not_Mapped_To_Node_Map_When_No_Label_Specified(string inputStr, int expectedVertexNum, string expectedLabel)
        {
            // if no label or empty string specified, then no label is mapped

            //Arrange
            NetFileReader reader = new NetFileReader();
            reader.KeepNodeLabels = true;   // if this flag is true, then the map will be created even if no labels are read in.
            reader.NetworkAdjList = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(0, 0, false, true, true);   // num nodes created when the *Vertices header read
            var nodeAttribNet = (INodeAttributes)reader.NetworkAdjList;
            int colIndex = nodeAttribNet.NodeData.AddColumn("Node labels", typeof(string), "");
            reader.NetworkAdjList.CreateNode(); // create the node AFTER the data col is added.

            //Act
            reader.ReadVertex(inputStr);

            //Assert
            int mappedIndex = reader.VertexNumberMap[expectedVertexNum];

            INode node = reader.NetworkAdjList.Nodes[mappedIndex];
            var nodeAttribs = (INodeAttributes) reader.NetworkAdjList;
            string mappedLabel = nodeAttribs.NodeData.GetValue<string>(node, colIndex);

            string defaultVal = (((INodeAttributes) reader.NetworkAdjList).NodeData as DataTable).Columns[0].DefaultValue as string;
            Assert.Equal(defaultVal, mappedLabel);
        }
Example #3
0
        public void ReadVertex_Reads_Vertex_From_Input_And_Maps_Vertex_Number_To_Node_Index(string inputStr, int expectedVertexNum, string expectedLabel)
        {
            // if no label or empty string specified, then no label is mapped

            //Arrange
            NetFileReader reader = new NetFileReader();
            reader.KeepNodeLabels = false;  // otherwise we have to dummy the node map

            reader.NetworkAdjList = BasicAdjListGenerator.GenerateAdjListWithDataAttribs(1, 0, false, true, true);    // num nodes created when the *Vertices header read

            //Act
            reader.ReadVertex(inputStr);

            //Assert
            Assert.Equal(1, reader.Network.NodeCount);

            bool vertexNumIsMapped = reader.VertexNumberMap.ContainsKey(expectedVertexNum);
            Assert.True(vertexNumIsMapped);

            int mappedIndex = reader.VertexNumberMap[expectedVertexNum];
            INode node = reader.NetworkAdjList.Nodes[mappedIndex];
            Assert.NotNull(node);

            Assert.Equal(mappedIndex, node.Index);
        }