Beispiel #1
0
        public void AddVertex_Empty_VertexCountIsOne()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();

            graph.AddVertex(0);
            Assert.That(graph.VertexCount, Is.EqualTo(1));
        }
Beispiel #2
0
        public void AddVertex_Empty_GetVertexTagReturnsData()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v     = graph.AddVertex(42);

            Assert.That(graph.GetVertexTag(v), Is.EqualTo(42));
        }
Beispiel #3
0
        public void GetOutEdges_NoOutEdges_IsEmpty()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v     = graph.AddVertex(0);
            var edges = graph.GetOutEdges(v);

            Assert.That(edges.IsEmpty, Is.True);
        }
Beispiel #4
0
        public void RemoveVertex_VertexHasSelfEdge_Throws()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v     = graph.AddVertex(0);

            graph.AddEdge(v, v, 0);
            Assert.That(() => graph.RemoveVertex(v), Throws.ArgumentException);
        }
Beispiel #5
0
        public void RemoveVertex_GraphWithSingleVertex_VertexCountIsZero()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v     = graph.AddVertex(0);

            graph.RemoveVertex(v);
            Assert.That(graph.VertexCount, Is.Zero);
        }
Beispiel #6
0
        public void AddEdge_GraphWithTwoVertices_GetEdgeTagReturnsData()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v1    = graph.AddVertex(0);
            var v2    = graph.AddVertex(0);
            var e     = graph.AddEdge(v1, v2, 42);

            Assert.That(graph.GetEdgeTag(e), Is.EqualTo(42));
        }
Beispiel #7
0
        public void AddEdge_GraphWithTwoVertices_EdgeCountIsOne()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v1    = graph.AddVertex(0);
            var v2    = graph.AddVertex(0);

            graph.AddEdge(v1, v2, 0);
            Assert.That(graph.EdgeCount, Is.EqualTo(1));
        }
Beispiel #8
0
        public void GetEdge_GraphWithEdge_DataIsCorrect()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v0    = graph.AddVertex(0);
            var v1    = graph.AddVertex(0);
            var e     = graph.AddEdge(v0, v1, 42);

            Assert.That(graph.GetEdgeTag(e), Is.EqualTo(42));
        }
Beispiel #9
0
        public void RemoveEdge_SelfEdge_EdgeCountIsZero()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v     = graph.AddVertex(0);
            var e     = graph.AddEdge(v, v, 0);

            graph.RemoveEdge(e);
            Assert.That(graph.EdgeCount, Is.Zero);
        }
Beispiel #10
0
        public void AddEdge_SecondOutEdge_SourceHasOutDegreeTwo()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v1    = graph.AddVertex(0);
            var v2    = graph.AddVertex(0);

            graph.AddEdge(v1, v2, 0);
            graph.AddEdge(v1, v2, 0);
            Assert.That(graph.GetOutDegree(v1), Is.EqualTo(2));
        }
Beispiel #11
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));
        }
Beispiel #12
0
        public void RemoveEdge_SecondEdge_OutDegreeIsOne()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();
            var v1    = graph.AddVertex(0);
            var v2    = graph.AddVertex(0);

            graph.AddEdge(v1, v2, 0);
            var e = graph.AddEdge(v1, v2, 0);

            graph.RemoveEdge(e);
            Assert.That(graph.GetOutDegree(v1), Is.EqualTo(1));
        }
Beispiel #13
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));
        }
Beispiel #14
0
        public void Ctor_EdgeComparer_IsNull()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();

            Assert.That(graph.GetComparer <DirectedGraphWithoutInEdges <int, int>, EdgeIdx>(), Is.Null);
        }
Beispiel #15
0
        public void Ctor_EdgeCount_IsZero()
        {
            var graph = new DirectedGraphWithoutInEdges <int, int>();

            Assert.That(graph.EdgeCount, Is.Zero);
        }