예제 #1
0
        public void GetEdge_GraphWithEdge_SourceAndTargetAreCorrect()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v0    = graph.AddVertex(0);
            var v1    = graph.AddVertex(0);
            var e     = graph.AddEdge(v0, v1, 0);

            Assert.That(graph.GetSource(e), Is.EqualTo(v0));
            Assert.That(graph.GetTarget(e), Is.EqualTo(v1));
        }
예제 #2
0
        public void AddEdge_GraphWithTwoVertices_SourceHasOutEdge()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v1    = graph.AddVertex(0);
            var v2    = graph.AddVertex(0);

            graph.AddEdge(v1, v2, 0);
            Assert.That(graph.GetOutDegree(v1), Is.EqualTo(1));
            var outEdges = graph.GetOutEdges(v1);

            Assert.That(outEdges.Length, Is.EqualTo(1));
            Assert.That(graph.GetSource(outEdges[0]), Is.EqualTo(v1));
            Assert.That(graph.GetTarget(outEdges[0]), Is.EqualTo(v2));
        }